2016-04-25 25 views
-1

在插入SQL时,我有可空列的机器ID。如果该字段中有某种类型,我希望它检查该值是否存在。这工作得很好。但是,因为它不是一个必需的表条目,我希望它忽略该字段,如果为空,只需插入null。现在我已经尝试了几种不同的方法,即使它是空的,它也会继续验证该字段,或者在未验证的情况下添加所有内容。这是最新的尝试:如果datagridview单元格不是null,那么?其他?

 If IsDBNull(DataGridView3.Rows(i).Cells("Machine ID").Value) = False Then 

      STSQL = "select machine_id from mpcs.machine where machine_id = " & "'" & DataGridView3.Rows(i).Cells("Machine ID").Value & "'" 
      rsMPCS = MPCS_SELECT_SQL(UCase(STSQL), rsMPCS) 
      If Not rsMPCS.HasRows Then 
       MessageBox.Show("Not a valid Machine ID") 
       Return 
      End If 
      rsMPCS.Close() 
     ElseIf IsDBNull(DataGridView3.Rows(i).Cells("Machine ID").Value) = True Then 
      DataGridView3.Rows(i).Cells("Machine ID").Value = vbNull 
     End If 

好吧我想通了这种方式的作品。

 If MachID = Nothing Then 
      MachID = vbNull 
     Else 
      STSQL = "select machine_id from mpcs.machine where machine_id = " & "'" & DataGridView3.Rows(i).Cells("Machine ID").Value & "'" 
      rsMPCS = MPCS_SELECT_SQL(UCase(STSQL), rsMPCS) 
      If Not rsMPCS.HasRows Then 
       MessageBox.Show("Not a valid Machine ID") 
       Return 
      End If 
      rsMPCS.Close() 
     End If 

回答

0

如果我没有记错的话应该是

DataGridView3.Rows(i).Cells("Machine ID").Value = nothing 

以及贵国如果条款是错误的。正确的语法是If Convert.IsDBNull(...)

+0

它仍然会验证条目是否有效,但elseif仍在验证而不是忽略它的有效与否。 – Lee

相关问题