2017-06-01 61 views
0

在「轉換到管道」按鈕上,我調用了插入方法。但是我面臨的問題是當我點擊按鈕而沒有在字段中輸入數據時。在數據庫中輸入空值。 enter image description here插入前的空值vb.net

如何在插入到vb.net表中之前應用條件來檢查空值?我使用

插入查詢如下:

Dim myquery As String = "Insert into Pipeline (BranchCode, CustomerName, Email, Phone, Mobile, Remarks, Converted, Converteddate, Company, CreatedBy, CreationDate) Values ('" + BranchCode + "', '" + CustomerName + "', '" + Email + "', '" + Phone + "', '" + Mobileno + "', '" + Remarks + "', '1', GetDate(), '" + Company + "', '" & User.Identity.Name & "', GetDate())" 
+0

你有沒有嘗試過驗證?快速搜索併爲輸入字段應用一些驗證。應該使用參數化來防止注入 –

+0

嘗試使用參數。它是注入安全的,你可以遍歷你的參數,並在執行查詢之前檢查該值是否爲空。 – muffi

+0

我無法應用組驗證,因爲有兩個按鈕在相同的字段上工作。我只能對照字段限制一個按鈕。 –

回答

1

你可以以不同的方式,

  1. 做驗證每個控件在SQL查詢
  2. 檢查

1.驗證

If String.IsNullOrEmpty(TextBox1.Text.ToString().Trim) Then 
     Databasevaluetoinsert = DBNull.Value 
    Else 
     Databasevaluetoinsert = TextBox1.Text   
    End If 

2.在SQL查詢

使用ISNULL(假設數據庫是MS SQL SERVER)

像查詢ISNULL(Email, 'Values to be inserted')

或者你用Parameter收集命令

cmd=new SqlCommand("insert into tableName values (@col1,@col2,@col3)",conn) 
If TextBox1.Text.Trim().Length=0 Then 
    cmd.Parameters.Add("@col1",SqlDbType.Varchar).Value=DBNull.Value 
else 
    cmd.Parameters.Add("@col1",SqlDbType.Varchar).Value=TextBox1.Text 
End If 

根據我的意見驗證最好是處理空值