[英]Parameterized Update Query for Sql server in ASP.net with VB
我正在尝试编写一个paramaterized更新查询,以将值插入到Sql Server Express数据库中。 我写的查询是:
Dim cmd As New SqlCommand
cmd.Connection = conn
cmd.CommandText = "update tblposts set title=@ptitle, pdate=@pd,
content=@pcontent where pid=@p"
cmd.Parameters.AddWithValue("ptitle", txtTitle.Text)
cmd.Parameters.AddWithValue("pcontent", txtcontent.InnerText)
cmd.Parameters.AddWithValue("pd", DateTime.Now.ToString)
cmd.Parameters.AddWithValue("p", postid)
在运行cmd.ExecuteNonQuery
,我将受影响的行数作为1,但更改未反映在数据库中。
在使用Debug.Write
打印查询时,我得到的查询不是参数值,而是参数本身的名称(即@pcontent,@ title等)
这可能是什么错误?
在你的AddWithValue
你需要在参数的前面加上@符号,所以:
cmd.Parameters.AddWithValue("@ptitle", txtTitle.Text)
cmd.Parameters.AddWithValue("@pcontent", txtcontent.InnerText)
cmd.Parameters.AddWithValue("@pd", DateTime.Now.ToString)
cmd.Parameters.AddWithValue("@p", postid)
我猜它正在执行但是where子句是空的,所以可能更新一个空行。
无论如何,尝试以上,它应该按预期更新。
编辑添加
CommandText
总是只有@value
,它不会将参数值替换为字符串。
您需要遍历cmd.Parameters
集合以写出值。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.