2017-06-01 45 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 

根据我的意见验证最好是处理空值