System.Data.OleDb.OleDbException:查询值和目标字段的数量不同
本文关键字:字段 目标 OleDb Data OleDbException 查询 System | 更新日期: 2023-09-27 17:55:29
我得到了一些帮助,我非常感谢使用参数将信息插入数据库,因为我相信这样做是更好的做法。但是,我确实收到以下错误"查询值和目标字段的数量不同"。不知道为什么会这样。代码和数据库似乎很好。
[WebMethod]
public void bookRatedAdd(string title, int rating, string review, string ISBN, string userName)
{
OleDbConnection conn;
conn = new OleDbConnection(@"Provider=Microsoft.Jet.OleDb.4.0;
Data Source=" + Server.MapPath("App_Data''BookRateInitial.mdb"));
conn.Open();
OleDbCommand cmd = conn.CreateCommand();
cmd.CommandText = "INSERT INTO bookRated([title], [rating], [review], [frnISBN], [frnUserName])VALUES(@title, @rating. @review, @ISBN, @userName)";
//adding my parameters
cmd.Parameters.AddRange(new OleDbParameter[]
{
new OleDbParameter("@title", title),
new OleDbParameter("@rating", rating),
new OleDbParameter("@review", review),
new OleDbParameter("@ISBN", ISBN),
new OleDbParameter("@userName", userName),
});
cmd.ExecuteNonQuery();
conn.Close();
}
也许关于为什么存在此错误的建议?
亲切问候阿里安
在
@rating 参数之后的 INSERT 语句中有一个 . (句点) 而不是 , (逗号)。
将 . 更改为逗号。
INSERT INTO bookRated([title], [rating], [review], [frnISBN], [frnUserName])
VALUES(@title, @rating, @review, @ISBN, @userName)
我认为这可能很简单,就像在指定参数的地方放置了一个句点来代替逗号一样简单:
@rating. @review
应该是:
@rating, @review