c# - 参数化查询错误c#

标签 c# mysql sql combobox sqlconnection

当我从组合框(cb_oname)中选择一个项目并输入顺序时,程序崩溃并在executenonquery()处给出错误。我在下面突出显示 实际上,当我单击“提交订单”按钮时,此代码就会运行。 cb_ocat 是项目的类别,其数据类型是 vnarchar(50)

string query = @"Insert into  dbo.orders
(OrderType,OrderID,Product_Name, Product_category,Product_Quantity,
Product_Price,Date,Discount,Order_Price,Phone) values  
(@txt_rdvalue,@txt_orderid,@cb_oname,@cb_ocat,@cb_oqty,
@txt_oprice,@Date,@txt_disc,@txt_orderprice,@txt_call)";

if (string.IsNullOrWhiteSpace(txt_rdvalue.Text) || string.IsNullOrWhiteSpace(txt_orderid.Text) || string.IsNullOrWhiteSpace(cb_oname.Text) || string.IsNullOrWhiteSpace(cb_ocat.Text) || string.IsNullOrWhiteSpace(cb_oqty.Text) || string.IsNullOrWhiteSpace(txt_oprice.Text) || string.IsNullOrWhiteSpace(txt_disc.Text))
{
    lbl_incorrect.Visible = true;
}
else
{
    using (SqlConnection con = new SqlConnection(@"Data Source=.;Initial Catalog=Pizza Mania;Integrated Security=True"))
    {
        using (SqlCommand cmd = new SqlCommand(query, con))
        {
            cmd.CommandType = CommandType.Text;
            cmd.Connection = con;
            con.Open();


            cmd.Parameters.Add(new SqlParameter("@Date", dateTimePicker1.Value.Date));
            cmd.Parameters.AddWithValue("@txt_rdvalue", txt_rdvalue.Text);
            cmd.Parameters.AddWithValue("@txt_orderid", Convert.ToDouble(txt_orderid.Text));
            cmd.Parameters.AddWithValue("@cb_oname", cb_oname.SelectedItem);
            cmd.Parameters.AddWithValue("@cb_ocat", cb_ocat.SelectedItem);
            cmd.Parameters.AddWithValue("@cb_oqty", Convert.ToDouble(cb_oqty.SelectedItem));
            cmd.Parameters.AddWithValue("@txt_oprice", Convert.ToDouble((txt_oprice.Text)));
            cmd.Parameters.AddWithValue("@txt_disc", Convert.ToDouble(txt_disc.Text));
            cmd.Parameters.AddWithValue("@txt_orderprice", txt_orderprice.Text);
            cmd.Parameters.AddWithValue("@txt_call", txt_call.Text);
            if (txt_call.Text == null)
            {
                cmd.Parameters.AddWithValue(@"txt_call", txt_call.Text == null);
            }



            cmd.ExecuteNonQuery();// here i am getting the error that the parameterized query cb_' expects the parameter cb_ocat which was not supplied.

            //MessageBox.Show("Order Inserted");

            con.Close();
        }

最佳答案

我对此不太确定,但是

如果 cb_oact 是字符串,尝试将其转换为字符串 cmd.Parameters.AddWithValue("@cb_ocat", cb_ocat.SelectedItem.ToString()); 希望这有效

关于c# - 参数化查询错误c#,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/36258805/

相关文章:

sql - 如何在没有行时使 SSIS 包失败

c# - 使用 EF 处理嵌套表

c# - 每次我在外部单击我的 wpf 页面时触发的事件是什么?

c# - 在 emgu cv 中查找 otsu 阈值的功能是什么?

c# - 如何运行后台进程来响应 VSTO Office 加载项中的选择更改事件?

Mysql更新表中不存在记录的情况

mysql - 左连接不适用于 codeigniter

MYSQL:如何获取table1的具体数据以及获取table2和table3的最新数据

mysql - Azure 上的 Wordpress 无法建立数据库连接

SQL Server - PK 删除性能不佳