Oledb ExecuteNonQuery函数没有将所有数据插入数据库



我试图用c#将值插入Access数据库,但只有一些数据被插入。数据库中的所有数据类型和c#代码都是正确的。

下面的代码抛出一个错误:

INSERT INTO语句语法错误

代码:

string insertStatement =
"INSERT INTO Car (Category, Model, CarYear, Mileage, CostPerDay, Availability, Location, Image, Manufacturer, Description) " +
"VALUES (@Category, @Model, @CarYear, @Mileage, @CostPerDay, @Availability, @Location, @Image, @Manufacturer, @Description)";
OleDbConnection connection = new OleDbConnection(CarRentalDB.ConnectionString);
OleDbDataAdapter adapter = new OleDbDataAdapter(insertStatement, connection);
OleDbCommand command = new OleDbCommand(insertStatement, connection);
command.Parameters.AddWithValue("@Category", car.category.ToString());
command.Parameters.AddWithValue("@Model", car.model);
command.Parameters.AddWithValue("@CarYear", car.year);
command.Parameters.AddWithValue("@Mileage", car.mileage);
command.Parameters.AddWithValue("@CostPerDay", car.costPerDay);
command.Parameters.AddWithValue("@Availability", car.availability);
command.Parameters.AddWithValue("@Location", car.location);
command.Parameters.AddWithValue("@Image", car.image);
command.Parameters.AddWithValue("@Manufacturer", car.manufacturer);
command.Parameters.AddWithValue("@Description", car.description);
connection.Open();
command.ExecuteNonQuery();
但是,如果我去掉Image、Manufacturer和Description,那么它执行时不会出现错误。下面是不返回错误并只插入部分数据的代码:
string insertStatement = 
"INSERT INTO CAR (Category, Model, CarYear, Mileage, CostPerDay, Availability, Location)" +
" VALUES (@Category, @Model, @CarYear, @Mileage, @CostPerDay, @Availability, @Location)";
OleDbConnection connection = new OleDbConnection(CarRentalDB.ConnectionString);
OleDbDataAdapter adapter = new OleDbDataAdapter(insertStatement, connection);
OleDbCommand command = new OleDbCommand(insertStatement, connection);
command.Parameters.AddWithValue("@Category", car.category.ToString());
command.Parameters.AddWithValue("@Model", car.model);
command.Parameters.AddWithValue("@Category", car.category.ToString());
command.Parameters.AddWithValue("@Model", car.model);
command.Parameters.AddWithValue("@CarYear", car.year);
command.Parameters.AddWithValue("@Mileage", car.mileage);
command.Parameters.AddWithValue("@CostPerDay", car.costPerDay);
command.Parameters.AddWithValue("@Availability", car.availability);
command.Parameters.AddWithValue("@Location", car.location);
connection.Open();
command.ExecuteNonQuery();

下面是数据的样子(请原谅相同数据的多个条目)

感谢您的宝贵时间!

如果有语法错误,那么几乎可以肯定是因为您使用保留字作为标识符。我敢肯定,如果你看的话,你可以找到一个访问保留词的列表,但根据你的解释,它可能是Image和/或Description。将这些标识符括在括号

, [Image], Manufacturer, [Description])

,你应该可以走了。你可以单独尝试每一个,看看它是否只是其中一个-Image几乎肯定是一个问题,但不确定Description。注意,你可以把所有的标识符都用括号括起来,这样就不会出现这个问题了。

如果有语法错误,那么几乎可以肯定是因为您使用保留字作为标识符。我敢肯定,如果你看,你可以找到一个访问保留词列表,但它可能是图像和/或描述,根据你的解释。将这些标识符括在括号

中,[图像],制造商,[描述])你应该可以走了。你可以单独尝试每一个,看看它是否只是其中之一-图像几乎肯定是一个问题,但不确定描述。注意,你可以把所有的标识符都用括号括起来,这样就不会出现这个问题了。

相关内容

  • 没有找到相关文章

最新更新