很简单,我无法弄清楚如何从文本框中添加(即+)一个整数到SQL字段中的整数。
因此,例如,SQL字段中可能包含“10”,文本框中可能包含“5”。我想将这些数字加在一起以存储'15'而无需下载SQL表。
包含要添加到SQL整数的整数的文本框是tranamount.Text
,SQL表中的SQL列是@ugpoints。请注意,没有“+” - 这是在下面的代码中,并且确实是错误的 - tranamount.Text
的值被添加到表中而没有问题,但它只是替换原始值;意味着最终结果在SQL字段中为'5'。
构建这个的正确方法是什么?我已经尝试了以下代码,但这显然不起作用。
cmd = New SqlCommand("UPDATE PersonsA SET U_G_Studio=@ugpoints WHERE Members_ID=@recevierID", con)
cmd.Parameters.AddWithValue("@recevierID", tranmemberID.Text)
cmd.Parameters.AddWithValue("@ugpoints", + tranamount.Text) '<--- Value to add.
cmd.ExecuteNonQuery()
新手问题我知道,我是vb中的SQL新手。
答案 0 :(得分:1)
你必须使用正确的sql:
Dim sql = "UPDATE PersonsA SET U_G_Studio=U_G_Studio + @ugpoints WHERE Members_ID=@recevierID"
同时使用AddWithValue
的正确类型:
Using cmd = New SqlCommand(sql, con)
' use the using-statement to dispose everything that implements IDisposable, so also the connection '
cmd.Parameters.AddWithValue("@ugpoints", Int32.Parse(tranamount.Text))
' .... '
End Using
答案 1 :(得分:0)
您想要的SQL是:
"UPDATE PersonsA SET U_G_Studio= (U_G_Studio + @ugpoints) " & _
"WHERE Members_ID=@recevierID"
答案 2 :(得分:0)
获取U_G_Studio
字段的当前值,添加参数的值并重新分配给U_G_Studio
,但请记住,您需要将值作为整数传递,否则AddWithValue
1}}将传递一个字符串,你会得到来自db的转换错误。
cmd = New SqlCommand("UPDATE PersonsA SET U_G_Studio=U_G_Studio + @ugpoints " &
"WHERE Members_ID=@recevierID", con)
cmd.Parameters.AddWithValue("@recevierID", tranmemberID.Text)
cmd.Parameters.AddWithValue("@ugpoints", Convert.ToInt32(tranamount.Text))
cmd.ExecuteNonQuery()
答案 3 :(得分:0)
怎么样
cmd.Parameters.AddWithValue("@ugpoints", (int)tranamount.Text)
....
cmd = New SqlCommand("UPDATE PersonsA SET U_G_Studio= SET U_G_Studio + @ugpoints WHERE Members_ID=@recevierID", con)
编辑1:史蒂夫更快!