【发布时间】:2014-04-03 18:30:00
【问题描述】:
我正在尝试通过 VB 和 ASP.net 在 SQL Server 数据库中进行更新查询
下面的这段代码会更新所有具有相同值的记录。我希望它只更新一条记录,具体取决于“电子邮件”会话变量。
Dim cmdstring As String = "UPDATE [Customer] SET card_type=@CARDTYPE"
Email = Session("email")
', Card_Number, Expiry_Date, Security_Number, Name_On_Card) Values (@CARDTYPE, @CARDNUMBER, @EXPIRYDATE, @SECURITYNUMBER, @NAMEONCARD)"
conn = New SqlConnection("data source=.\SQLEXPRESS;AttachDbFilename=|DataDirectory|\UniversityClothing.mdf;Integrated Security=True;User Instance=True")
cmd = New SqlCommand(cmdstring, conn)
cmd.Parameters.AddWithValue("@CARDTYPE", cardtype)
cmd.Parameters.AddWithValue("@CARDNUMBER", cardnumber)
cmd.Parameters.AddWithValue("@EXPIRYDATE", expirydate)
cmd.Parameters.AddWithValue("@SECURITYNUMBER", securitynumber)
cmd.Parameters.AddWithValue("@NAMEONCARD", nameoncard)
conn.Open()
cmd.ExecuteNonQuery()
conn.Close()
【问题讨论】:
-
客户有邮箱吗?如果是这样,请添加 WHERE 语句。
-
是的,但是 WHERE 语句不起作用,真是个新手!
-
你的意思是不会工作?您收到错误消息吗?如果是这样,它是什么?您尝试过的陈述是什么?
-
Dim cmdstring As String = "UPDATE [Customer] SET card_type=@CARDTYPE WHERE email=?"
-
那么你的参数在哪里?另外,最好不要混搭。 WHERE email=@Email