【问题标题】:Using foreach to insert many things into TABLE使用 foreach 将许多东西插入 TABLE
【发布时间】:2014-04-01 04:24:34
【问题描述】:

我不确定如何在我的表中正确插入许多行。自从我做任何数据库工作以来已经有几年了。做这样的事情可以吗?:

foreach(var something in somelist)
{
    SqlCommand cmd = new SqlCommand(con, str);

    // Insert row into db
}

【问题讨论】:

  • 谷歌搜索。你会找到的。
  • 我建议将连接放在循环之外,因为这样您就必须打开它,插入,然后在每个循环中关闭。

标签: c# sql .net sql-server winforms


【解决方案1】:

示例代码:

using (SqlConnection con= new SqlConnection (conString))
{
    con.Open();
    foreach(var something in somelist)
    {
        using (SqlCommand cmd = new SqlCommand (insertSQLString, con))
        {
            cmd.Parameters.AddWithValue("@param1", something.SomeVal1);
            cmd.Parameters.AddWithValue("@param2", something.SomeVal2);
            cmd.ExecuteNonQuery();
        }
    }
}

【讨论】:

    【解决方案2】:

    根据您对“多行”的含义以及这些行的来源,您可以使用 bcp 实用程序或 SqlBulkCopy:

    http://msdn.microsoft.com/en-us/library/system.data.sqlclient.sqlbulkcopy.aspx

    两者的工作速度都比 RBAR 方法快得多。

    【讨论】:

      猜你喜欢
      • 2016-07-03
      • 1970-01-01
      • 2013-04-09
      • 2019-07-15
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2012-10-19
      • 2010-12-21
      相关资源
      最近更新 更多