小编典典

将所选值添加到用户个人资料

sql

好的,我有一个按钮,在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();
    }
}

阅读 177

收藏
2021-04-15

共1个答案

小编典典

;在sql查询中缺少。因此,您需要将其更改为此。

myquery = string.Format(myquery + "'{0};'", title);

在将title参数附加到字符串后,请注意文字分号myquery

附带说明一下,如果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);
2021-04-15