C# 将数据插入到数据库错误参数中

C# 将数据插入到数据库错误参数中,c#,sql-server,sqlcommand,C#,Sql Server,Sqlcommand,我想将我的DataGridView数据插入我使用参数的数据库 这些是我的数据库文件 CREATE TABLE [dbo].[Tbl_Order] ( [Name] VARCHAR (50) NULL, [Price] INT NULL, [Quantity] INT NULL, [Total] INT NULL ); 这是我的密码 SqlConnection con = new S

我想将我的DataGridView数据插入我使用参数的数据库

这些是我的数据库文件

    CREATE TABLE [dbo].[Tbl_Order] (
    [Name]     VARCHAR (50) NULL,
    [Price]    INT          NULL,
    [Quantity] INT          NULL,
    [Total]    INT          NULL
);
这是我的密码

SqlConnection con = new SqlConnection("Data Source=DESKTOP-R34C6VV\\SQL;Initial Catalog=Student_Databse_2019_HW1;Integrated Security=True");

     con.Open();
     for (int i = 0; i < dataGridView1.Rows.Count - 1; i++ )
            {
                SqlCommand cmd = new SqlCommand("INSERT INTO Tbl_Order(Name, Price, Quantity, Total) values(@Name, @Price, @Qty, @Total",con);
                cmd.Parameters.AddWithValue("@Name", dataGridView1.Rows[i].Cells[0].Value);
                cmd.Parameters.AddWithValue("@Price", dataGridView1.Rows[i].Cells[1].Value);
                cmd.Parameters.AddWithValue("@Qty", dataGridView1.Rows[i].Cells[2].Value);
                cmd.Parameters.AddWithValue("@Total", dataGridView1.Rows[i].Cells[3].Value);
                cmd.ExecuteNonQuery();
            }
    con.Close();
    dataGridView1.Rows.Clear();
SqlConnection con=newsqlconnection(“数据源=DESKTOP-R34C6VV\\SQL;初始目录=Student\u database\u 2019\u HW1;集成安全性=True”);
con.Open();
对于(int i=0;i
我在这个代码cmd.ExecuteNonQuery()上有一个错误

上面说 System.Data.dll中发生“System.Data.SqlClient.SqlException”类型的未处理异常 其他信息:“@Total”附近的语法不正确。

我的DataGridView中有4个字段
名称、价格、数量、总数


有人知道问题出在哪里吗?

您的SQL语句中没有关闭圆括号。

从代码中看,您的Insert语句中似乎缺少一个“)”

数据库是Quantity,c#是Quantity。似乎SQL末尾缺少了最后一个括号statement@jdweng我也把它改成了数量,但仍然不起作用。你是不是看不起答案?这里也有一些可疑和次优的东西。A) 存储类似于易于计算的总数的内容是一个坏主意,B)
Add(string,dbType)。Value=…
比AddWithValue更可取C)您的数据库提供程序对象将乐意且轻松地为您更新数据库,而无需通过DGV进行代码查询。在参数方面做得很好-很高兴看到:(我没有注意到这一点,非常感谢在azhar khorasany的帮助Good spot@azhar khorasany