try this
public class YourClass
{
DataTable dtDetails = new DataTable();
protected void Page_Load(object sender, EventArgs e)
{
if (!this.IsPostBack)
{
dtDetails.Clear();
if (dtDetails.Columns.Count == 0)
{
dtDetails.Columns.Add("sl_no", typeof(int));
dtDetails.Columns.Add("productname", typeof(string));
dtDetails.Columns.Add("qty", typeof(double));
dtDetails.Columns.Add("price", typeof(decimal));
dtDetails.Columns.Add("amount", typeof(long));
}
}
}
public void filldtDetails()
{
dtDetails.Clear();
if (dtDetails.Columns.Count == 0)
{
dtDetails.Columns.Add("sl_no", typeof(int));
dtDetails.Columns.Add("productname", typeof(string));
dtDetails.Columns.Add("qty", typeof(double));
dtDetails.Columns.Add("price", typeof(decimal));
dtDetails.Columns.Add("amount", typeof(long));
}
if (grdDetails.Rows.Count != 0)
{
for (int i = 0; i < grdDetails.Rows.Count; i++)
{
dtDetails.Rows.Add(i + 1, grdDetails.Rows[i].Cells[1].Text, grdDetails.Rows[i].Cells[2].Text, grdDetails.Rows[i].Cells[3].Text, grdDetails.Rows[i].Cells[4].Text);
}
}
}
protected void Button2_Click(object sender, EventArgs e)
{
filldtDetails();
DataRow dr1 = dtDetails.NewRow();
dr1[0] = TextBox2.Text;
dr1[1] = TextBox2.Text;
dr1[2] = TextBox4.Text;
dr1[3] =TextBox3.Text;
dr1[4] =TextBox5.Text;
dtDetails.Rows.Add(dr1);
GridView1.DataSource = dtDetails;
GridView1.DataBind();
}
}
Hope this helps