好的,我有一个按钮,在onclick上它会将选择值的数量减少了1。这是可行的,接下来,它将选择的选项添加到用户配置文件中名为Rented的列中。当我运行代码时,它告诉我我缺少一个; 来自查询,但代码未显示任何错误。这让我很困惑。如果有人可以指出我做错了什么,那就太好了。
代码
protected void Button2_Click(object sender, EventArgs e) { OleDbConnection conn = new OleDbConnection("Provider=Microsoft.Jet.OLEDB.4.0;Data Source=|DataDirectory|\\ASPNetDB.mdb;Persist Security Info=True"); { da.InsertCommand = new OleDbCommand("INSERT INTO UserProfile (Rented) VALUES (@Rented) WHERE ([UserName] = ?)", conn); string dvdrent = DG_Latest.SelectedRow.Cells[1].Text; da.InsertCommand.Parameters.AddWithValue("@Rented", dvdrent); var myquery = string.Format("UPDATE DVD SET Stock = Stock - 1 WHERE Title = "); var row = DG_Latest.SelectedRow; var title = row.Cells[1].Text; myquery = string.Format(myquery + "'{0}'", title); conn.Open(); using (OleDbCommand cmd = new OleDbCommand(myquery, conn)) cmd.ExecuteNonQuery(); da.InsertCommand.ExecuteNonQuery(); conn.Close(); conn.Dispose(); } }
您;在sql查询中缺少。因此,您需要将其更改为此。
;
myquery = string.Format(myquery + "'{0};'", title);
在将title参数附加到字符串后,请注意文字分号myquery。
myquery
附带说明一下,如果title先设置,然后使用以下命令一次性创建整个查询字符串,则可能会更容易:
title
var row = DG_Latest.SelectedRow; var title = row.Cells[1].Text; var myquery = String.Format("UPDATE DVD SET Stock = Stock - 1 WHERE Title = {0};", title);
编辑:您还错过了INSERT SQL命令中的分号。您需要具备:
da.InsertCommand = new OleDbCommand("INSERT INTO UserProfile (Rented) VALUES (@Rented) WHERE ([UserName] = ?);", conn);