Take a WebForm and design by taking the following one.

login

The “Add to datatable” button will add rows to a datatable. On clicking the “Add to database” button, all the rows from the datatable will be inserted in a database table with the help of a stored procedure which takes a Table Valued Parameter.
The table structure is as below:

  1. CREATE TABLE [dbo].[BCP](
  2. [Name] [varchar](50) NULL,
  3. [Age] [int] NULL
  4. )
The TVP is as below:
  1. create type tbl1 as table
  2. (nm varchar(50),ag int)
The stored procedure is as below:
  1. CREATE PROCEDURE InsertBcp
  2. (@tvp1 dbo.tbl1 READONLY)
  3. as begin
  4. insert bcp
  5. select * from @tvp1
  6. end
Code for the Page Load event:
  1. protected void Page_Load(object sender, EventArgs e)
  2. {
  3. if (!IsPostBack)
  4. {
  5. DataTable dt = new DataTable();
  6. dt.Columns.Add("Name", typeof(string));
  7. dt.Columns.Add("Age", typeof(int));
  8. Session["datatable"] = dt;
  9. }
  10. }
Code for the “Add to datatable” button:
  1. DataTable dt = (DataTable)Session["datatable"];
  2. dt.Rows.Add(TextBox1.Text, Convert.ToInt32(TextBox2.Text));
Code for the “Add to database” button:
  1. DataTable dt = (DataTable)Session["datatable"];
  2. SqlConnection conn =
  3. new SqlConnection("server=.;database=cts1;integrated security=true");
  4. SqlCommand cmd = new SqlCommand("InsertBcp", conn);
  5. cmd.CommandType = CommandType.StoredProcedure;
  6. cmd.Parameters.AddWithValue("@tvp1", dt);
  7. conn.Open();
  8. cmd.ExecuteNonQuery();
  9. conn.Close();
Remember to use session state because of ASP.NET’s stateless nature.