2016-04-26 26 views
0

我是新的VB.net。我有問題從VB.net文本框傳遞一個空值到sql查詢字符串。這是我當前的代碼:從文本框傳遞空值到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列空值。謝謝!

+0

您正在使用什麼數據庫? – cableload

+0

Microsoft sql server –

+2

當generic_jobTxt等於'')時會發生什麼; drop table Job_db; - ? – Will

回答

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 
相關問題