Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/csharp/261.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C# 将datagridview的所有数据插入数据库C_C#_Sql Server_Windows - Fatal编程技术网

C# 将datagridview的所有数据插入数据库C

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

我有一个datagridview,它是通过各种操作和用户对数据的操作创建的。我想一次将gridview的所有数据插入数据库,我知道我可以尝试以下类似的代码:

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块中写出异常消息吗?您的连接打开了吗?