C# 向数据库插入dataTable行的简单方法

C# 向数据库插入dataTable行的简单方法,c#,insert,datatable,C#,Insert,Datatable,我有一个与数据库表稍有不同的dataTable,其中包含一些额外的外部字段。有没有办法在不循环行的情况下插入这些行 如果我的datatable与database table相同,我可以快速插入它吗?从您的问题来看,我不确定模式是否相同。如果是,那么您只需创建一个适配器并调用update。使用ODBC的示例 public void Update(DataTable table) { OdbcConnection connection = new OdbcConnection(...); OdbcD

我有一个与数据库表稍有不同的dataTable,其中包含一些额外的外部字段。有没有办法在不循环行的情况下插入这些行


如果我的datatable与database table相同,我可以快速插入它吗?

从您的问题来看,我不确定模式是否相同。如果是,那么您只需创建一个适配器并调用update。使用ODBC的示例

public void Update(DataTable table)
{
OdbcConnection connection = new OdbcConnection(...);
OdbcDataAdapter adapter = new OdbcDataAdapter("SELECT * FROM TABLENAME", connection);

OdbcCommandBuilder builder = new OdbcCommandBuilder(adapter);
adapter.UpdateCommand = builder.GetUpdateCommand();
adapter.InsertCommand = builder.GetInsertCommand();
adapter.DeleteCommand = builder.GetDeleteCommand();

adapter.Update(table);
}

根据你的问题,我不确定模式是否相同。如果是,那么您只需创建一个适配器并调用update。使用ODBC的示例

public void Update(DataTable table)
{
OdbcConnection connection = new OdbcConnection(...);
OdbcDataAdapter adapter = new OdbcDataAdapter("SELECT * FROM TABLENAME", connection);

OdbcCommandBuilder builder = new OdbcCommandBuilder(adapter);
adapter.UpdateCommand = builder.GetUpdateCommand();
adapter.InsertCommand = builder.GetInsertCommand();
adapter.DeleteCommand = builder.GetDeleteCommand();

adapter.Update(table);
}

是的,您可以使用以下代码执行此操作

using (SqlConnection cn = new SqlConnection(ConfigurationManager.ConnectionStrings["ConsoleApplication3.Properties.Settings.daasConnectionString"].ConnectionString))
{
  cn.Open();

  using (SqlBulkCopy copy = new SqlBulkCopy(cn))
  {
    copy.ColumnMappings.Add(0, 0);
    copy.ColumnMappings.Add(1, 1);
    copy.ColumnMappings.Add(2, 2);
    copy.ColumnMappings.Add(3, 3);
    copy.ColumnMappings.Add(4, 4);

    copy.DestinationTableName = "tNorthwind";

    copy.WriteToServer(dt);
  }
}  

是的,您可以使用以下代码执行此操作

using (SqlConnection cn = new SqlConnection(ConfigurationManager.ConnectionStrings["ConsoleApplication3.Properties.Settings.daasConnectionString"].ConnectionString))
{
  cn.Open();

  using (SqlBulkCopy copy = new SqlBulkCopy(cn))
  {
    copy.ColumnMappings.Add(0, 0);
    copy.ColumnMappings.Add(1, 1);
    copy.ColumnMappings.Add(2, 2);
    copy.ColumnMappings.Add(3, 3);
    copy.ColumnMappings.Add(4, 4);

    copy.DestinationTableName = "tNorthwind";

    copy.WriteToServer(dt);
  }
}