【问题标题】:Insert into data to database Error Parameters [closed]将数据插入数据库错误参数[关闭]
【发布时间】:2019-10-09 15:21:38
【问题描述】:

我想将我的 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();

我在这段代码中有错误 cmd.ExecuteNonQuery();

它说 System.Data.dll 中出现“System.Data.SqlClient.SqlException”类型的未处理异常 附加信息:“@Total”附近的语法不正确。

我的 DataGridView 中有 4 个字段
Name , Price , Qty , Total

有人知道是什么问题吗?

【问题讨论】:

  • 数据库是数量,c#是数量。
  • 您的 SQL 语句末尾似乎缺少最后的括号
  • @jdweng 我也改成数量,但还是不行
  • 你看不起答案吗?
  • 那里也有一些可疑和次优的东西。 A)存储像总数这样容易计算的东西是个坏主意,B)Add(string, dbType).Value= ... 比 AddWithValue 更受欢迎 C)您的 DB Provider 对象将很乐意轻松地为您更新您的数据库,而无需通过 DGV 钓鱼代码。不过参数做得很好 - 很高兴看到

标签: c# sql-server sqlcommand


【解决方案1】:

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

【讨论】:

  • :( 我没注意到,非常感谢您的帮助
  • 好地方@azhar-khorasany
【解决方案2】:

从您的代码看来,您的 Insert 语句中缺少“)”。

【讨论】:

    猜你喜欢
    • 2012-08-21
    • 2013-01-27
    • 2013-03-01
    • 1970-01-01
    • 2014-10-06
    • 1970-01-01
    • 2017-07-03
    • 2018-01-25
    • 2013-06-06
    相关资源
    最近更新 更多