C# 将数据表插入到sql表中

声明:本页面是StackOverFlow热门问题的中英对照翻译,遵循CC BY-SA 4.0协议,如果您需要使用它,必须同样遵循CC BY-SA许可,注明原文地址和作者信息,同时你必须将它归于原作者(不是我):StackOverFlow 原文地址: http://stackoverflow.com/questions/15779475/
Warning: these are provided under cc-by-sa 4.0 license. You are free to use/share it, But you must attribute it to the original authors (not me): StackOverFlow

提示:将鼠标放在中文语句上可以显示对应的英文。显示中英文
时间:2020-08-10 17:55:28  来源:igfitidea点击:

Insert datatable in to sql table

c#asp.net

提问by arun mohan

I have a datatable named dt2. And it contains some data. I want to add these data to my table named invitationdata.

我有一个名为dt2. 它包含一些数据。我想将这些数据添加到名为invitationdata.

How can I write the code? Can any one help?

我该如何编写代码?任何人都可以帮忙吗?

采纳答案by Saurabh

 DataTable dt = new DataTable();
 string sql = "";
 for (int i = 0; i < dt2.Rows.Count; i++)
 {
    sql = sql + "insert into InvitationData (Col1, Col2, ColN) values('"
          + dt2.Rows[i]["columnname"].ToString().Trim() + "','"
          + dt2.Rows[i]["columnname"].ToString().Trim() + "','" 
          + dt2.Rows[i]["columnname"].ToString().Trim() + "')";
 }

回答by John Woo

use INSERT INTO...SELECT

INSERT INTO...SELECT

INSERT INTO InvitationData (Col1, Col2, ColN)
SELECT Col1, Col2, ColN
FROM   DT2

What it does is it selects all records (or specified record) and inserts it on the other table.

它所做的是选择所有记录(或指定的记录)并将其插入到另一个表中。

回答by Habib

If your datatable and your table structure is same , then you can use SqlBulkCopywhich would be a faster option if the datatable contains large number of rows.

如果您的数据表和表结构相同,那么您可以使用SqlBulkCopy,如果数据表包含大量行,这将是一个更快的选择。

SqlBulkCopy

批量复制

Lets you efficiently bulk load a SQL Server table with data from another source.

使您可以使用来自其他源的数据高效地批量加载 SQL Server 表。

回答by Rocky

public bool BulkInsertDataTable(string tableName, DataTable dataTable)
{
    bool isSuccuss;
    try
    {
        SqlConnection SqlConnectionObj = GetSQLConnection();
        SqlBulkCopy bulkCopy = new SqlBulkCopy(SqlConnectionObj, SqlBulkCopyOptions.TableLock | SqlBulkCopyOptions.FireTriggers | SqlBulkCopyOptions.UseInternalTransaction, null);
        bulkCopy.DestinationTableName = tableName;
        bulkCopy.WriteToServer(dataTable);
        isSuccuss = true;
    }
    catch (Exception ex)
    {
        isSuccuss = false;
    }
    return isSuccuss;
}