asp.net(c#) DataTable 快速匯入資料庫

來源:互聯網
上載者:User

DataTable表示一個與記憶體有關的資料表,可以使用工具列裡面的控制項拖放來建立和使用,也可以在編寫程式過程中根據需要獨立建立和使用,最常見的情況是作為DataSet的成員使用,在這種情況下就需要用在編程過程中根據需要動態建立資料表

public void InsertTable(DataTable dt, string TabelName, DataColumnCollection dtColum)
    {
      
        //聲明資料庫連接
        mycon.Open();
        //聲明SqlBulkCopy ,using釋放非託管資源
        using (SqlBulkCopy sqlBC = new SqlBulkCopy(mycon))
        {
            //一次批量的插入的資料量
            sqlBC.BatchSize = 1000;
            //逾時之前操作完成所允許的秒數,如果逾時則事務不會提交 ,資料將復原,所有已複製的行都會從目標表中移除
            sqlBC.BulkCopyTimeout = 60;

            //?定 NotifyAfter 屬性,以便在每插入10000 條資料時,呼叫相應事件。
            sqlBC.NotifyAfter = 10000;
            // sqlBC.SqlRowsCopied += new SqlRowsCopiedEventHandler(OnSqlRowsCopied);
            //設定要批量寫入的表
            sqlBC.DestinationTableName = TabelName;
            //自訂的datatable和資料庫的欄位進行對應
            //sqlBC.ColumnMappings.Add("id", "tel");
            //sqlBC.ColumnMappings.Add("name", "neirong");
            for (int i = 0; i < dtColum.Count; i++)
            {
                sqlBC.ColumnMappings.Add(dtColum[i].ColumnName.ToString(), dtColum[i].ColumnName.ToString());
            }
            //批量寫入
            sqlBC.WriteToServer(dt);
        }
        mycon.Dispose();
    }
    //響應時事件
    void OnSqlRowsCopied(object sender, SqlRowsCopiedEventArgs e)
    {
        // Response.Write("<br/> OK! ");
    }
DataAdapter.SelectCommand用於擷取資料,因此它的CommandText應該是select語句;
DataAdapter.InsertCommand用於插入資料,因此它的CommandText應該是insert語句;
DataAdapter.DeleteCommand用於刪除資料,因此它的CommandText應該是delete語句;
DataAdapter.UpdateCommand用於更新資料,因此它的CommandText應該是update語句;

因此你的代碼應該這樣寫:
SelectSQL="select * from tblName";
SqlCommand SelectCmd = new SqlCommand(SelectSQL, Con);

InsertSQL="insert into tblName (Input_Time,Location_ID) values (@Input_Time,@Location_ID)";

SqlCommand InsertCmd = new SqlCommand(InsertSQL, Con);
InsertCmd.Parameters.Add(new System.Data.SqlClient.SqlParameter("@Input_Time",System.Data.SqlDbType.Time));
InsertCmd.Parameters.Add(new System.Data.SqlClient.SqlParameter("@Location_ID",System.Data.SqlDbType.NVarChar));

SqlDataAdapter Dad = new SqlDataAdapter();
Dad.SelectCommand = SelectCmd;
Dad.InsertCommand = InsertCmd;
Dad.Update(DT);

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.