c# - 是什么导致了这个 MySql.Data.MySqlClient.MySqlException? C#

标签 c# database exception mysql

我已经查看我的代码一段时间了,但我看不到任何会在 cmd.ExecuteNonQuery() 中导致以下错误的内容:

An unhandled exception of type 'MySql.Data.MySqlClient.MySqlException' occurred in MySql.Data.dllAdditional information: You have an error in your SQL syntax; check the manual that corresponds to your MySQL server version for the right syntax to use near '' at line 1

这是我的代码:

public void InsertReservation(Reservation reservation)
{ //To counter the unavailable Auto Increment in the database
    int ReservationID = 0;
    string query = "SELECT max(ReservationID) FROM Reservation";

    if (this.OpenConnection())
    {
    MySqlCommand cmd = new MySqlCommand(query, connection);
    ReservationID = (Int32)cmd.ExecuteScalar();
    CloseConnection();
    }

    ReservationID++;
    string query2 = "INSERT INTO `Reservation`(`ReservationID`, `CarID`, `CustomerID`, `Startdate`, `Enddate`, `Confirmed`, `Kilometres`, `Pickupcity`, `Pickupstreetname`, `Pickupstreetnumber`, `Pickupstreetnumbersuffix`, `Paid`, `Comment`) VALUES(@reservationid,@carid,@customerid,@startdate,@enddate,@confirmed,@Kilometres,@pickupcity,@pickupstreetname,@pickupnumber,@pickupnumbersuffix,@paid,@comment";
    if (this.OpenConnection())
    {
        int convertCofnfirmedToInt;
        int convertPaidtoInt;
        MySqlCommand cmd = new MySqlCommand(query2, connection);
        cmd.Parameters.AddWithValue("@reservationid", ReservationID);
        cmd.Parameters.AddWithValue("@carid", reservation.carID);
        cmd.Parameters.AddWithValue("@customerid", reservation.customerID);
        cmd.Parameters.AddWithValue("@startdate", reservation.startdate);
        cmd.Parameters.AddWithValue("@enddate", reservation.enddate);
        cmd.Parameters.AddWithValue("@confirmed", reservation.);
        cmd.Parameters.AddWithValue("@Kilometres", reservation.kilometres);
        cmd.Parameters.AddWithValue("@pickupcity", reservation.pickupcity);
        cmd.Parameters.AddWithValue("@pickupstreetname", reservation.pickupstreetname);
        cmd.Parameters.AddWithValue("@pickupnumber", reservation.pickupstreetnumber);
        cmd.Parameters.AddWithValue("@pickupnumbersuffix", reservation.pickupstreetnumbersuffix);
        cmd.Parameters.AddWithValue("@paid", paidbool);
        cmd.Parameters.AddWithValue("@comment", reservation.comment);


        cmd.ExecuteNonQuery();
        this.CloseConnection();
    }

}    

如果有人能帮助我,那就太好了!

最佳答案

在您的 sql INSERT 末尾添加右圆括号 ):

string query2 = "INSERT INTO `Reservation`(`ReservationID`, `CarID`, `CustomerID`, `Startdate`, `Enddate`, `Confirmed`, `Kilometres`, `Pickupcity`, `Pickupstreetname`, `Pickupstreetnumber`, `Pickupstreetnumbersuffix`, `Paid`, `Comment`) VALUES(@reservationid,@carid,@customerid,@startdate,@enddate,@confirmed,@Kilometres,@pickupcity,@pickupstreetname,@pickupnumber,@pickupnumbersuffix,@paid,@comment)";

关于c# - 是什么导致了这个 MySql.Data.MySqlClient.MySqlException? C#,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/27483571/

相关文章:

c# - 我如何在部分类中使用 "override"方法?

c# - 如何在表格布局中合并两个单元格

c# - 如何远程调试数据库的 ASP.NET MVC bug?

java - 在 Java 中使用异常继续 Postgres 事务

java - 将异常转换为 JSON

java - Spring 中的自定义 @ControllerAdvice 用于异常处理

c# - 多站点 CMS - 每个站点的数据库,还是所有站点的一个数据库?

mysql - 导入时主键如何从0开始

PHP 变量未显示在页面上

sql - 选择三个字符长度的仅字母字符串