繁体   English   中英

从 C# Winform datagridview 添加到 MS-SQL 表

[英]Add to MS-SQL table from C# Winform datagridview

我有一个应用程序应该将数据行从 datagridview 添加到 SQL 表。 我现在有一个可行的解决方案,但它很慢,因为它使用 foreach 循环将数据添加到表中。 见代码:

foreach (DataGridViewRow row in dataGridViewName.Rows)
{
    using (SqlCommand cmd = new SqlCommand())
    {
        cmd.Connection = conn;
        cmd.CommandType = CommandType.Text;

        String sqlRaw = "INSERT INTO tblTable(" +
            "Column1, Column2, Column3)" +
            "SELECT " +
            "Column1Value, Column2Value, Column3Value" +
            "FROM [tblOtherTable] " +
            "WHERE [Criteria1] = '{0}'";

            cmd.CommandText = String.Format(sqlRaw, row.Cells[0].Value);

            cmd.ExecuteNonQuery();
    }

(我已经修改了示例代码,使其更易于阅读)。

有没有更快的方法将数据添加到 sql 表中,还是我必须一次只做一行?

编辑,我更新了代码以显示条件使用每行中的信息插入到 sql 表中。

有关 SQL 注入的所有提示都很重要,值得一听; 但是,如果查询不是将输入用户操作数据的内容,则您不必担心。

如果您不关心 SQL 注入,那么您可以将所有行连接到单个字符串 SQL 事务中,并一次提交,看看与您的相比,它的性能如何,而不是为每一行创建一个单独的SqlCommand目前的方法。 请注意,如果事务的任何部分失败,整个事务将回滚,您必须重新运行它包含的所有查询。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM