您如何进行更新声明?
我想用此字符串更新UserID theUserid,我想在同一个表中更新带有fileuploadpaths(string)的picturepath(图片)
OdbcCommand cmd = new OdbcCommand("UPDATE Pictures
SET ('" + theUserId + "','" + fileuploadpaths + "')
WHERE (UserID, picturepath)", cn);
不确定是否
UPDATE Pictures
SET UserID = "+ theUserid +"
picturepath="+ fileuploadpaths +"
Where UserID = theUserid
picturepath = something already in my db?
修改
我试过这个:
OdbcCommand cmd = new OdbcCommand("UPDATE Pictures SET picturepath ='" + fileuploadpaths + "' WHERE UserId = '" + theUserId + "')", cn);
但是我收到了错误:
您的SQL语法有错误;检查与MySQL服务器版本对应的手册,以便在第1行的')'附近使用正确的语法
答案 0 :(得分:3)
使用:
OdbcCommand cmd = new OdbcCommand("UPDATE PICTURES
SET userid = ?,
picturepath = ?
WHERE userid = ?");
cmd.Parameters.AddWithValue("@theuser", theUserid);
cmd.Parameters.AddWithValue("@picpath", fileuploadpaths);
cmd.Parameters.AddWithValue("@userid", userid);
try
{
myConnection.executeNonQuery(cmd);
}
catch (Exception e)
{
Console.Write("Update failed: "+e.Message);
}
虽然参数有名称,但它们是绑定变量。意味着指定的值必须是“?”的位置顺序占位符,从查询字符串的第一个字符开始(“更新...”)。
答案 1 :(得分:1)
你可能想要这样的东西:
Update Pictures set picturepath = 'SomePath' where UserId = 'someUserId'
答案 2 :(得分:1)
您只是通过用户ID查询,对吗?在这种情况下,它不需要包含在您的UPDATE
子句中,picturepath
不需要包含在WHERE
子句中。
UPDATE Pictures
SET picturepath = '/somewhere/picture.png'
Where UserID = 12345
有关详情,请参阅MySQL UPDATE
docs。