C# 将datagridview的所有数据插入数据库C
我有一个datagridview,它是通过各种操作和用户对数据的操作创建的。我想一次将gridview的所有数据插入数据库,我知道我可以尝试以下类似的代码:C# 将datagridview的所有数据插入数据库C,c#,sql-server,windows,C#,Sql Server,Windows,我有一个datagridview,它是通过各种操作和用户对数据的操作创建的。我想一次将gridview的所有数据插入数据库,我知道我可以尝试以下类似的代码: private void btnSaveProducts_Click(object sender, EventArgs e) { SqlConnection connection = DBConnectivity.getConnection(); if (connection != null) { t
private void btnSaveProducts_Click(object sender, EventArgs e)
{
SqlConnection connection = DBConnectivity.getConnection();
if (connection != null)
{
try
{
for (int i = 0; i < dGvProducts.Rows.Count; i++)
{
string query = "INSERT INTO product (productName) " + "VALUES (@productName)";
SqlCommand command = DBConnectivity.getCommandForQuery(query, connection);
int result = command.ExecuteNonQuery();
Console.WriteLine(result + "");
}
// string query = "Insert into units(name,packing)values('" + txtNameUnit.Text + "' , '" + txtPackingUnit.Text + "')";
// SqlCommand command = DBConnectivity.getCommandForQuery(query, connection);
// int result = command.ExecuteNonQuery();
// Console.WriteLine(result + "");
}
catch (Exception ex)
{
}
finally
{
connection.Close();
}
}
}
按原样,代码尝试执行参数化查询,但从不为参数赋值。即使您这样做,也永远不会提取单元格值 代码应该如下所示:
var query = "INSERT INTO product (productName) VALUES (@productName)";
using var(connection = DBConnectivity.getConnection())
using(var command = new SqlCommand(query, connection))
{
var productParam=command.Parameters.Add("@productName",SqlDbType.NVarChar,50);
connection.Open();
for (int i = 0; i < dGvProducts.Rows.Count; i++)
{
var productName=dGvProducts.Rows[i].Cells[somecolumn].Value;
productParam.Value=productName;
int result = command.ExecuteNonQuery();
Console.WriteLine(result);
}
}
我看不出有问题。先生,请编写此代码,但无法在数据库表中插入值。您得到的错误是什么?ExecuteOnQuery的结果是什么?您能在catch块中写出异常消息吗?您的连接打开了吗?