【问题标题】:Easy way to insert rows of dataTable to database将数据表行插入数据库的简便方法
【发布时间】:2011-12-09 09:23:44
【问题描述】:

我有一个与数据库表中的一些外部字段略有不同的数据表。有没有办法插入这些行而不循环行?

如果我的数据表与数据库表相同,我可以快速插入吗?

【问题讨论】:

    标签: c# insert datatable


    【解决方案1】:

    是的,你可以使用下面的代码来做到这一点

    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);
      }
    }  
    

    http://www.codeproject.com/KB/database/DataTableToDataBase.aspx

    【讨论】:

      【解决方案2】:

      我不确定架构是否相同。如果是,那么您可以简单地创建一个适配器并调用更新。使用 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);
      }
      

      【讨论】:

        猜你喜欢
        • 2017-11-04
        • 1970-01-01
        • 2019-01-07
        • 1970-01-01
        • 2012-10-21
        • 1970-01-01
        • 2012-11-27
        • 1970-01-01
        • 1970-01-01
        相关资源
        最近更新 更多