Click here to Skip to main content
16,012,061 members
Please Sign up or sign in to vote.
0.00/5 (No votes)
See more:
Hi ,

i need some help in completing a small task . " How to insert,update,delete record in data grid view using inline i.e (suppose if we update a record in the data grid then after click on the next row the data which is updated should be save directly to the sql server database ).
i already surfed so many pages but i didnt get what i want


1 max 25 developer
2 rex 36 team lead

if u check the above table suppose if a made any changes to the name "max " to "rambo" then after clicking on the next row it should be directly updated to data base like wise insert and delete to .

Thanks in advance
Posted

1 solution

try this one..a small sample prgm fr grid inline

in webForm1.aspx

XML
<body>
    <form id="form1" runat="server">
    <div>
     <h4>
            Simple Add/Insert, Edit/Update, Delete Gridview Data Example ALONG WITH FORM2</h4>
        <asp:Label ID="lblMsg" runat="server"></asp:Label>
        <asp:GridView ID="gvSubDetails" runat="server" DataKeyNames="SubjectId"
        OnRowEditing="gvSubDetails_RowEditing" OnRowCommand="gvSubDetails_RowCommand"
        OnRowDeleting="gvSubDetails_RowDeleting" OnRowUpdating="gvSubDetails_RowUpdating"
        OnRowCancelingEdit="gvSubDetails_RowCancelingEdit" AutoGenerateColumns="False"
        ShowFooter="True" BackColor="#FFCC99"
         >

            <HeaderStyle BackColor="#9a9a9a" ForeColor="White" Font-Bold="true" Height="30" />
            <AlternatingRowStyle BackColor="#f5f5f5" />
            <Columns>
              <asp:TemplateField>
                    <HeaderTemplate>
                        <asp:CheckBox ID="chkSelectAll" runat="server" />
                    </HeaderTemplate>
                    <ItemTemplate>
                        <asp:CheckBox ID="chkSelect" runat="server" CssClass="chkSelect" />
                    </ItemTemplate>
                </asp:TemplateField>
                <asp:TemplateField>
                    <EditItemTemplate>
                        <asp:LinkButton ID="lbtnUpdate" runat="server" CommandName="Update"
                        Text="Update" />
                        <asp:LinkButton ID="lbtnCancel" runat="server" CommandName="Cancel"
                        Text="Cancel" />
                    </EditItemTemplate>
                    <ItemTemplate>
                        <asp:LinkButton ID="lbtnEdit" runat="server" CommandName="Edit"
                        Text="Edit" />
                        <asp:LinkButton ID="lbtnDelete" runat="server" CommandName="Delete"
                        OnClientClick="return confirm('Are you sure you want to delete this record?')"
                        Text="Delete" CausesValidation="false" />
                    </ItemTemplate>
                    <FooterTemplate>
                        <asp:LinkButton ID="lbtnAdd" runat="server" CommandName="Add"
                        Text="Add New" ValidationGroup="vgAdd" />
                    </FooterTemplate>
                </asp:TemplateField>
               <asp:TemplateField HeaderText="SubjectId">
                    <EditItemTemplate>
                        <asp:TextBox ID="txtSubjectId" Text='<%#Eval("SubjectId") %>'
                        runat="server" />
                    </EditItemTemplate>
                  <ItemTemplate>
                        <asp:Label ID="lblSubjectId" Text='<%#Eval("SubjectId") %>'
                        runat="server" />
                    </ItemTemplate>
                     </asp:TemplateField >

                    <asp:TemplateField HeaderText="SubjectName">
                    <EditItemTemplate>
                        <asp:TextBox ID="txtSubjectName" Text='<%#Eval("SubjectName") %>'
                        runat="server" />
                    </EditItemTemplate>
                    <ItemTemplate>
                        <asp:Label ID="lblSubjectName" Text='<%#Eval("SubjectName") %>'
                        runat="server" />
                    </ItemTemplate>
                    <FooterTemplate>
                        <asp:TextBox ID="newSubjectName" runat="server" />
                        <asp:RequiredFieldValidator ID="rfvSubjectName" runat="server" Text="*"
                        ControlToValidate="newSubjectName" ValidationGroup="vgAdd"
                        ForeColor="Red" />
                    </FooterTemplate>
                </asp:TemplateField>
                <asp:TemplateField HeaderText="Marks">
                    <EditItemTemplate>
                        <asp:TextBox ID="txtMarks" runat="server" Text='<%#Eval("Marks") %>' />
                    </EditItemTemplate>
                    <ItemTemplate>
                        <asp:Label ID="lblMarks" runat="server" Text='<%#Eval("Marks") %>' />
                    </ItemTemplate>
                    <FooterTemplate>
                        <asp:TextBox ID="newMarks" runat="server" />
                        <asp:RequiredFieldValidator ID="rfvMarks" runat="server" Text="*"
                        ControlToValidate="newMarks" ForeColor="Red" ValidationGroup="vgAdd" />
                        <asp:RegularExpressionValidator ID="revMarks" runat="server" ForeColor="Red"
                        ControlToValidate="newMarks" ValidationExpression="^[0-9]*$" Text="*Numbers"
                        ValidationGroup="vgAdd" />
                    </FooterTemplate>
                </asp:TemplateField>
                <asp:TemplateField HeaderText="Grade">
                    <EditItemTemplate>
                        <asp:TextBox ID="txtGrade" runat="server" Text='<%#Eval("Grade") %>' />
                    </EditItemTemplate>
                    <ItemTemplate>
                        <asp:Label ID="lblGrade" runat="server" Text='<%#Eval("Grade") %>' />
                    </ItemTemplate>
                    <FooterTemplate>
                        <asp:TextBox ID="newGrade" runat="server" />
                        <asp:RequiredFieldValidator ID="rfvGrade" runat="server" ForeColor="Red"
                        ControlToValidate="newGrade" Text="*" ValidationGroup="vgAdd" />
                    </FooterTemplate>
                </asp:TemplateField>
                   <asp:TemplateField>
            <ItemTemplate>
                <asp:LinkButton ID="lnkDetails" runat="server" Text="Send Details" PostBackUrl='<%# "~/WebForm2.aspx?RowIndex=" %>'></asp:LinkButton>
            </ItemTemplate>
        </asp:TemplateField>
            </Columns>
        </asp:GridView>

         <br />

        <asp:Button ID="btnGetData" runat="server" Height="42px"
            Text="Pass Data to Second Page"  PostBackUrl='<%#"~/WebForm2.aspx?id=" +Eval("SubjectId") %>'
            Width="199px" BackColor="#FFCCCC" Font-Bold="True"
            Style="height:26px" onclick="btnGetData_Click" />


    </div>
    </form>
</body>






WebForm1.aspx.cs



public partial class WebForm1 : System.Web.UI.Page
{
string conn = ConfigurationManager.ConnectionStrings["conn"].ConnectionString;

protected void Page_Load(object sender, EventArgs e)
{
lblMsg.Text = "";
if (!IsPostBack)
{
BindSubjectData();
}
}


protected void BindSubjectData()
{
using (SqlConnection sqlCon = new SqlConnection(conn))
{
using (SqlCommand cmd = new SqlCommand())
{
cmd.CommandText = "SELECT * FROM Stud_Details";
cmd.Connection = sqlCon;
sqlCon.Open();
SqlDataAdapter da = new SqlDataAdapter(cmd);
DataTable dt = new DataTable();
da.Fill(dt);
if (dt.Rows.Count > 0)
{
gvSubDetails.DataSource = dt;
gvSubDetails.DataBind();
}
else
{
DataRow dr = dt.NewRow();
dt.Rows.Add(dr);
gvSubDetails.DataSource = dt;
gvSubDetails.DataBind();
gvSubDetails.Rows[0].Visible = false;
}
sqlCon.Close();
}
}
}

//called on row edit command
protected void gvSubDetails_RowEditing(object sender, GridViewEditEventArgs e)
{
gvSubDetails.EditIndex = e.NewEditIndex;
BindSubjectData();
}

//called when cancel edit mode
protected void gvSubDetails_RowCancelingEdit(object sender, GridViewCancelEditEventArgs e)
{
gvSubDetails.EditIndex = -1;
BindSubjectData();
}

//called on row add new command
protected void gvSubDetails_RowCommand(object sender, GridViewCommandEventArgs e)
{
if (e.CommandName == "Add")
{
bool IsAdded = false;
TextBox SubjectName =
(TextBox)gvSubDetails.FooterRow.FindControl("newSubjectName");
TextBox Marks = (TextBox)gvSubDetails.FooterRow.FindControl("newMarks");
TextBox Grade = (TextBox)gvSubDetails.FooterRow.FindControl("newGrade");
using (SqlConnection sqlCon = new SqlConnection(conn))
{
using (SqlCommand cmd = new SqlCommand())
{
//here i'd added "@" for continuous string in new line
cmd.CommandText = @"INSERT INTO Stud_Details(SubjectId,SubjectName,Marks,Grade)
VALUES(@SubjectId,@SubjectName,@Marks,@Grade)";
// cmd.Parameters.AddWithValue("@SubjectId", SubjectId.Text);
cmd.Parameters.AddWithValue("@SubjectName", SubjectName.Text);
cmd.Parameters.AddWithValue("@Marks", Marks.Text);
cmd.Parameters.AddWithValue("@Grade", Grade.Text);
cmd.Connection = sqlCon;
sqlCon.Open();
IsAdded = cmd.ExecuteNonQuery() > 0;
sqlCon.Close();
}
}
if (IsAdded)
{
lblMsg.Text = "Book details couldn't be updated";
lblMsg.ForeColor = System.Drawing.Color.Red;

BindSubjectData();
}
else
{
lblMsg.Text = "Error while adding '" + SubjectName.Text + "' subject details";
lblMsg.ForeColor = System.Drawing.Color.Red;
}
}
}

//called on row update command
protected void gvSubDetails_RowUpdating(object sender, GridViewUpdateEventArgs e)
{
bool IsUpdated = false;
//getting key value, row id
int SubjectID =
Convert.ToInt32(gvSubDetails.DataKeys[e.RowIndex].Value.ToString());
//getting row field details
TextBox SubjectName =
(TextBox)gvSubDetails.Rows[e.RowIndex].FindControl("txtSubjectName");
TextBox Marks = (TextBox)gvSubDetails.Rows[e.RowIndex].FindControl("txtMarks");
TextBox Grade = (TextBox)gvSubDetails.Rows[e.RowIndex].FindControl("txtGrade");
using (SqlConnection sqlCon = new SqlConnection(conn))
{
using (SqlCommand cmd = new SqlCommand())
{
//here i'd added "@" for continuous string in new line
cmd.CommandText = @"UPDATE Stud_Details SET SubjectName=@SubjectName,
Marks=@Marks,Grade=@Grade WHERE SubjectID=@SubjectId";
cmd.Parameters.AddWithValue("@SubjectId", SubjectID);
cmd.Parameters.AddWithValue("@SubjectName", SubjectName.Text);
cmd.Parameters.AddWithValue("@Marks", Marks.Text);
cmd.Parameters.AddWithValue("@Grade", Grade.Text);
cmd.Connection = sqlCon;
sqlCon.Open();
IsUpdated = cmd.ExecuteNonQuery() > 0;
sqlCon.Close();
}
}
if (IsUpdated)
{
lblMsg.Text = "'" + SubjectName.Text + "' subject details updated successfully!";
lblMsg.ForeColor = System.Drawing.Color.Green;
}
else
{
lblMsg.Text = "Error while updating '" + SubjectName.Text + "' subject details";
lblMsg.ForeColor = System.Drawing.Color.Red;
}
gvSubDetails.EditIndex = -1;
BindSubjectData();
}

//called on row delete command
protected void gvSubDetails_RowDeleting(object sender, GridViewDeleteEventArgs e)
{
bool IsDeleted = false;
//getting key value, row id
int SubjectID = Convert.ToInt32(gvSubDetails.DataKeys[e.RowIndex].Value.ToString());
//getting row field subjectname
Label SubjectName = (Label)gvSubDetails.Rows[e.RowIndex].FindControl("lblSubjectName");
using (SqlConnection sqlCon = new SqlConnection(conn))
{
using (SqlCommand cmd = new SqlCommand())
{
cmd.CommandText = "DELETE FROM Stud_Details WHERE SubjectId=@SubjectID";
cmd.Parameters.AddWithValue("@SubjectID", SubjectID);
cmd.Connection = sqlCon;
sqlCon.Open();
IsDeleted = cmd.ExecuteNonQuery() > 0;
sqlCon.Close();
}
}
if (IsDeleted)
{
lblMsg.Text = "'" + SubjectName.Text + "' subject details has been deleted successfully!";
lblMsg.ForeColor = System.Drawing.Color.Green;
BindSubjectData();
}
else
{
lblMsg.Text = "Error while deleting '" + SubjectName.Text + "' subject details";
lblMsg.ForeColor = System.Drawing.Color.Red;
}
}
protected void btnGetData_Click(object sender, EventArgs e)
{
Response.Redirect("WebForm2.aspx?SubjectId");
}




}
 
Share this answer
 
Comments
madpop 30-May-15 6:53am    
Hey thank you for your solution but i am looking for c#(windows application) not in asp.net

This content, along with any associated source code and files, is licensed under The Code Project Open License (CPOL)



CodeProject, 20 Bay Street, 11th Floor Toronto, Ontario, Canada M5J 2N8 +1 (416) 849-8900