Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/powerbi/2.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# c语言:尝试使用c将参数保存到MySql数据库时出错#_C#_Mysql - Fatal编程技术网

C# c语言:尝试使用c将参数保存到MySql数据库时出错#

C# c语言:尝试使用c将参数保存到MySql数据库时出错#,c#,mysql,C#,Mysql,我在C#程序中使用MySql数据库。 下面是我的代码,当我执行下面的方法时,它会抛出一个异常“MySql语法异常” 请帮我找出错误。如果需要任何进一步的信息来解决此问题,请让我知道 如果你们能帮我,我会很高兴的 private void btnVerify_Click(object sender, EventArgs e) { con.Open(); try { string cmdText = "INSE

我在C#程序中使用MySql数据库。 下面是我的代码,当我执行下面的方法时,它会抛出一个异常“MySql语法异常”

请帮我找出错误。如果需要任何进一步的信息来解决此问题,请让我知道

如果你们能帮我,我会很高兴的

    private void btnVerify_Click(object sender, EventArgs e)
    {
        con.Open();

        try
        {
            string cmdText = "INSERT INTO cheque(customer_name, national_id, drawn_bank, chq_number, bnk_br_code, ac_number, drawndate, amount, commission_rate, commission, order, recieved_date, due_date, reminder_date, chq_image_frnt, chq_image_back) VALUES(@customer_name,@national_id,@drawn_bank,@chq_number,@bnk_br_code,@ac_number,@drawndate,@amount,@commission_rate,@commission,@order,@recieved_date,@due_date,@reminder_date,@chq_image_frnt,@chq_image_back)";
            MySqlCommand cmd = new MySqlCommand(cmdText, con);
            cmd.Parameters.AddWithValue("@customer_name", txtCustomerName.Text);
            cmd.Parameters.AddWithValue("@national_id", txtIDNumber.Text);
            cmd.Parameters.AddWithValue("@drawn_bank", txtDrawnBank.Text);
            cmd.Parameters.AddWithValue("@chq_number", txtChqNo.Text);
            cmd.Parameters.AddWithValue("@bnk_br_code", txtBnkBrCode.Text);
            cmd.Parameters.AddWithValue("@ac_number", TxtAcNo.Text);
            cmd.Parameters.AddWithValue("@drawndate", dateTimePickerDrawnDate.Text);
            cmd.Parameters.AddWithValue("@amount", TxtAmount.Text);
            cmd.Parameters.AddWithValue("@commission_rate", txtCommissionRate.Text);
            cmd.Parameters.AddWithValue("@commission", txtCommission.Text);
            cmd.Parameters.AddWithValue("@order", Ordercb.Text);
            cmd.Parameters.AddWithValue("@recieved_date", dateTimePickerRecieved.Text);
            cmd.Parameters.AddWithValue("@due_date", dateTimePickerDue.Text);
            cmd.Parameters.AddWithValue("@reminder_date", dateTimePickerReminder.Text);
            cmd.Parameters.AddWithValue("@chq_image_frnt", picChqFrnt.Image);
            cmd.Parameters.AddWithValue("@chq_image_back", picChqBack.Image);


            cmd.ExecuteNonQuery();
            MessageBox.Show("Cheque has been inserted to the database");
            ClearData();
            con.Close();
        }
        catch (MySqlException x)
        {
            MessageBox.Show(x.Message);
        }

    }

是的,这是因为在MySQL中,
order
是一个保留字,需要使用类似backtique的方法进行转义

string cmdText = "INSERT INTO cheque(customer_name, national_id, drawn_bank, ..., `order`,...
这就是错误所说的正确语法,使用接近“顺序,received_date


帮你自己一个忙,停止使用保留字和关键字作为表名或列名,以后不要再使用这个问题了

在支票(和
值)中添加一些额外的空格,如
您还没有说明它是如何失败的。添加picChqFrnt.Image作为参数不会插入图像,您可能最终会得到它的ToString。MySQL语法错误消息继续说…为了正确的语法使用near
something
。这就是您需要找出错误的线索。“您的SQL语法有错误;请查看与您的MySql服务器版本相对应的手册,以了解使用“订单、收到日期、到期日期、提醒日期、chq_image\frn、chq_image\u back)V”在第1行的正确语法”这是错误哦,非常感谢。它有效。我接受您的建议。:D