2016-04-25 49 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

相關問題