try this one..a small sample prgm fr grid inline
in webForm1.aspx
<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");
}
}