将null值从文本框传递给sql查询

时间:2016-04-26 14:25:12

标签: sql vb.net

我是VB.net的新手。我在将VB.net文本框中的空值传递给sql查询字符串时遇到问题。这是我目前的代码:

Dim sqlstatement as string

 If generic_jobTxt.Text == '' Then
        generic_jobTxt = DBNull.Value
    End If

sqlstatement = "Insert into Job_db (generic_job) values('"+generic_jobTxt+"')"

如何将空值传递给sql字符串,这样当我运行sql时,我会在generic_job列中获得null值。谢谢!

1 个答案:

答案 0 :(得分:2)

首先,永远不要连接字符串来构建你的sql查询,而是使用参数化查询。否则你会打开sql注入和其他问题。 在这种情况下,你也不需要摆弄撇号。但是你应该使用正确的类型。

假设您使用的是SQL-Server,列类型为varchar

Dim sqlstatement = "Insert into Job_db (generic_job) values(@generic_job)"

Using con As New SqlConnection("connection-string")
    Using insertCommand = New SqlCommand(sqlstatement, con)
        Dim sqlParam = New SqlParameter("@generic_job", SqlDbType.VarChar)
        Dim jobTxt As String = generic_jobTxt.Text.Trim()
        sqlParam.Value = If(String.IsNullOrEmpty(jobTxt), Nothing, jobTxt)
        insertCommand.Parameters.Add(sqlParam)
        con.Open()
        Dim inserted As Int32 = insertCommand.ExecuteNonQuery()
    End Using
End Using