sql = "INSERT INTO Machine_Master(Machine_Code,Machine_Name,Status)" _
& " VALUES ('" & textmachinecode.Text & "','" & textdescription.Text & "', '" & combostatus.Text & "')"
如何更改组合框中的文字?当它保存在数据库中时,它将是整数。在这种情况下,文本combostatus.Text
有效在保存时为1,无效为0。
答案 0 :(得分:2)
帕特里克说,你不需要case when
,因为你可以在vb.net这边做,但你应该使用参数来避免问题:
Dim result As String = String.Empty
sql = "INSERT INTO Machine_Master (Machine_Code,Machine_Name,Status) " & _
" VALUES (@CODE, @DESC, @STATUS)"
Using cn As New SqlConnection("connectionString"), cmd As New SqlCommand(sql, cn)
Dim status As Integer = -1
Select Case combostatus.Text.ToLower()
Case "active" : status = 1
Case "not active" : status = 0
End Select
cmd.Parameters.AddWithValue("@CODE", textmachinecode.Text)
cmd.Parameters.AddWithValue("@DESC", textdescription.Text)
cmd.Parameters.AddWithValue("@STATUS", status)
result = cmd.ExecuteScalar().ToString()
End Using
答案 1 :(得分:1)
您不需要case when
,您可以简单地解决此客户端问题(请注意,使用参数更好,正如已经建议的那样!)
使用此条件:
IIf(combostatus.Text = "active", 1, 0)
所以,完全变成了:
sql = "INSERT INTO Machine_Master(Machine_Code,Machine_Name,Status)" _
& " VALUES ('" & textmachinecode.Text & "','" & textdescription.Text & "', " _
& IIf(combostatus.Text = "active", 1, 0) & ")"