HTML:
<form id="form1" runat="server">
<div>
Enter Name Please
<asp:TextBox ID="txtName" runat="server"></asp:TextBox>
<asp:RequiredFieldValidator ID="refName" runat="server" ForeColor="Red" ControlToValidate="txtName"
ErrorMessage="Required"></asp:RequiredFieldValidator>
<br />
Enter Salary Please<asp:TextBox ID="txtSalary" runat="server"></asp:TextBox>
<asp:RequiredFieldValidator ID="RequiredFieldValidator1" runat="server" ForeColor="Red"
ControlToValidate="txtSalary" ErrorMessage="Required"></asp:RequiredFieldValidator>
<asp:Button ID="btnAddInGrid" runat="server" OnClick="AddInGrid" Text="Add In GridView" />
<br />
<asp:GridView ID="gvGridview1" runat="server" Width="400" AutoGenerateColumns="false">
<Columns>
<asp:BoundField DataField="Name" HeaderText="Name" />
<asp:BoundField DataField="Salary" HeaderText="Salary" />
</Columns>
</asp:GridView>
<asp:Label ID="lblMessage" runat="server" ForeColor="Red" Text="Please enter some value in gridview"
Visible="false" /><br />
<asp:Button Text="Add Grid Data Into Database" CausesValidation="false" OnClick="SaveToDatabase" runat="server" />
</div>
</form>
C#:
private DataTable TempTabel
{
get
{
DataTable dt = new DataTable();
if (ViewState["CurrentTabele"] == null)
{
dt.Columns.AddRange(new DataColumn[2]{new DataColumn("Name",typeof(string)),
new DataColumn("Salary",typeof(int))});
ViewState["CurrentTabele"] = dt;
}
return (DataTable)ViewState["CurrentTabele"];
}
set
{
ViewState["CurrentTabele"] = value;
}
}
protected void AddInGrid(object sender, EventArgs e)
{
this.lblMessage.Visible = false;
DataTable dtCurrentTable = TempTabel;
if (TempTabel != null)
{
dtCurrentTable.Rows.Add(txtName.Text, Convert.ToInt32(txtSalary.Text));
this.gvGridview1.DataSource = dtCurrentTable;
this.gvGridview1.DataBind();
}
TempTabel = dtCurrentTable;
}
protected void SaveToDatabase(object sender, EventArgs e)
{
if (TempTabel.Rows.Count <= 0)
{
this.lblMessage.Visible = true;
}
else
{
foreach (GridViewRow row in gvGridview1.Rows)
{
string name = row.Cells[0].Text;
int salary = int.Parse(row.Cells[1].Text);
this.Save(name, salary);
}
}
}
private void Save(string name, int salary)
{
string conString = ConfigurationManager.ConnectionStrings["constr"].ConnectionString;
using (SqlConnection con = new SqlConnection(conString))
{
using (SqlCommand cmd = new SqlCommand("Insert Into Person(name,salary) values(@Name,@Salary)", con))
{
con.Open();
cmd.Parameters.AddWithValue("@Name", name);
cmd.Parameters.AddWithValue("@Salary", salary);
cmd.ExecuteNonQuery();
con.Close();
}
}
}