C#使用SqlBulkCopy 批量插入數據庫方法測試

namespace 批量插入方法測試
{
    public partial class Form1 : Form
    {
        public Form1()
        {
            InitializeComponent();
        }sql


        //批量插入方法
        public static void BulkToDB(DataTable dt)
        {
            string connectionString = System.Configuration.ConfigurationManager.AppSettings["SqlServerConnString"];
            SqlConnection sqlConn = new SqlConnection(connectionString);
           
            SqlBulkCopy bulkCopy = new SqlBulkCopy(sqlConn);
            bulkCopy.DestinationTableName = "Test";
            bulkCopy.BatchSize = dt.Rows.Count;測試

            try
            {
                sqlConn.Open();
                if (dt != null && dt.Rows.Count != 0)
                    bulkCopy.WriteToServer(dt);
            }
            catch (Exception ex)
            {
                throw ex;
            }
            finally
            {
                sqlConn.Close();
                if (bulkCopy != null)
                    bulkCopy.Close();
            }
        }spa

       /// <summary>
       /// 構建一個四列的數據表
       /// </summary>
       /// <returns></returns>
        public static DataTable GetTableSchema()
        {
            DataTable dt = new DataTable();
            dt.Columns.AddRange(new DataColumn[]{
            new DataColumn("Id",typeof(int)),
            new DataColumn("UserName",typeof(string)),
            new DataColumn("Useame",typeof(string)),
            new DataColumn("Pwd",typeof(string))});orm


            return dt;
        }string

        private void button1_Click(object sender, EventArgs e)
        {
           
                DataTable dt = GetTableSchema();  //數據表
               //把list裝入數據表中
                for (int i = 0; i < Getlist().Count; i++)
                {
                    DataRow r = dt.NewRow();
                    r[0] = Getlist()[i].Id;
                    r[1]= Getlist()[i].Name;
                    //r[2] = Getlist()[i].Age;
                    r[3] = Getlist()[i].Sex;
                    dt.Rows.Add(r);
                }
                BulkToDB(dt);
        
            MessageBox.Show("測試成功");it

        }io

        /// <summary>
        /// 列表中有四條數據都是2,4,6,8
        /// </summary>
        /// <returns></returns>
        public  static List<tst> Getlist()
        {
            List<tst>  tt = new List<tst>();
            for (int i = 0; i < 4; i++)
            {
                tt.Add(new tst("2", "4", "6", "8"));
            }
            return tt;
        }class

    }
}
SqlBulkCopy使用使用用於自定義表類型做爲存儲過程參數,批量寫入數據。object

相關文章
相關標籤/搜索