درج چندین سطر در پایگاه داده

در این مقاله میخواهیم کاربر هر تعداد رکورد که خواست اضافه کند و تمامی رکورد ها را در جدول خود درج کنیم

درج چندین سطر در پایگاه داده

یک جدول با دو فیلد زیر میسازیم:

    CREATE TABLE [dbo].[BCP](  
        [Name] [varchar](50) NULL,  
        [Age] [int] NULL  
    )   

سپس یک جدول کمکی  به شکل زیر میسازیم:

    create type tbl1 as table  
    (nm varchar(50),ag int)  

یک StoreProcedure برای درج رکورد ها از جدول کمکی به جدول اصلی مینویسیم:

    CREATE PROCEDURE InsertBcp  
      (@tvp1 dbo.tbl1 READONLY)  
      as begin  
      insert bcp   
      select * from @tvp1  
      end    

به صفحه aspx.cs خود یروید و در رویداد Page Load صفحه کد زیر را بنویسید:

    protected void Page_Load(object sender, EventArgs e)  
    {  
        if (!IsPostBack)  
        {  
            DataTable dt = new DataTable();  
            dt.Columns.Add("Name", typeof(string));  
            dt.Columns.Add("Age", typeof(int));  
            Session["datatable"] = dt;  
        }  
      
    }  

Design صفحه خود را به شکل زیر انجام دهید:

همانطور که مشاهده میکنید روی صفحه دو دکمه قرار دادیم دکمه Add to datatable زمانی که کاربر روی این دکمه کلیک میکند داده های داخل Text box ها را به یک data table اضافه میکند.

دکمه Add to Database ، داده های داخل datatable را در پاگاه داده ذخیره میکند

در رویداد کلیک دکمه Add to datatable  کد زیر را بنویسید:

    DataTable dt = (DataTable)Session["datatable"];  
    dt.Rows.Add(TextBox1.Text, Convert.ToInt32(TextBox2.Text));  

در رویداد کلیک دکمه Add to datatabbase  کد زیر را بنویسید:

    DataTable dt = (DataTable)Session["datatable"];  
    SqlConnection conn =  
      new SqlConnection("server=.;database=cts1;integrated security=true");  
    SqlCommand cmd = new SqlCommand("InsertBcp", conn);  
    cmd.CommandType = CommandType.StoredProcedure;  
    cmd.Parameters.AddWithValue("@tvp1", dt);  
    conn.Open();  
    cmd.ExecuteNonQuery();  
    conn.Close();  

حالا میتونید برنامه رو اجرا کنید