[英]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.