我有一个 datagridview,它是由各种操作和用户对数据的操作创建的。 我想一次将 gridview 的所有数据插入数据库,我知道我可以尝试类似这样的代码:
for(int i=0; i< dataGridView1.Rows.Count;i++)
{
string StrQuery= @"INSERT INTO tableName VALUES (" + dataGridView1.Rows[i].Cells["ColumnName"].Value +", " + dataGridView1.Rows[i].Cells["ColumnName"].Value +");";
try
{
using (SqlConnection conn = new SqlConnection(ConnString))
{
using (SqlCommand comm = new SqlCommand(StrQuery, conn))
{
conn.Open();
comm.ExecuteNonQuery();
}
}
}
但是每次插入记录时都创建一个新连接是否公平?数据网格可能包含很多行...有什么办法可以一次将所有数据取出到服务器并在sql中循环插入所有数据?
最佳答案
如果移动 for 循环,就不必建立多个连接。只需快速编辑您的代码块(绝不是完全正确的):
string StrQuery;
try
{
using (SqlConnection conn = new SqlConnection(ConnString))
{
using (SqlCommand comm = new SqlCommand())
{
comm.Connection = conn;
conn.Open();
for(int i=0; i< dataGridView1.Rows.Count;i++)
{
StrQuery= @"INSERT INTO tableName VALUES ("
+ dataGridView1.Rows[i].Cells["ColumnName"].Text+", "
+ dataGridView1.Rows[i].Cells["ColumnName"].Text+");";
comm.CommandText = StrQuery;
comm.ExecuteNonQuery();
}
}
}
}
关于一次执行多个SQL命令,请看这个链接: Multiple statements in single SqlCommand
关于c# - 一次将datagridview的所有数据插入数据库,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/10556556/