2011-11-17 70 views
0

我的情景,如何插入空值數據庫

進出口工作asp.net VB應用程序 我已經設置值將被插入Database.But他們的一些領域都是可選的,以填補

我需要檢查文本empty.if空我不應該輸入數據庫的值。如何在此工作

+0

首先你需要說你是如何訪問數據庫。 System.Data,LINQ to SQL,nHibernate和Entity Framework都是很受歡迎的選項。 –

回答

2

使用Parameter收集Command。 (我認爲你有一個MsSql數據庫)。

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 
... 
1

如果使用存儲過程添加到數據庫,則可以將null傳遞給該參數。它必須是一個可爲空的變量類型,如字符串。

+0

我會說約瑟夫的答案和我的是免費的。 – DoStuffZ

1

怎麼做,你可以檢查它像這樣

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

不需要比較布爾值 - 真。如果使用String.IsNullOrEmpty(..)Then .. Else ... End If – adatapost

0

下面是我如何在代碼中處理這個問題的示例。這是相當長的,因爲我想檢查數據庫中可以爲空的每個字段。

昏暗查詢作爲字符串=的String.Empty 查詢& = 「INSERT INTO CHANGELOG(ChangeLogId,日誌類型,ReleaseType,引用類型,一changeType,面積,說明,注意事項,日期,MajorVersion,MinorVersion,RevisionVersion,BuildVersion)」 查詢「NEWID()」,「&」@LogType,@ReleaseType,@ReferenceType,@ChangeType,@Area,@Description,@Notes,@Date,@MajorVersion,@MinorVersion,@RevisionVersion,@BuildVersion );」 使用康恩作爲新的SqlConnection( 「服務器= JSEN-PC \ SQLEXPRESS;數據庫= MYDB;堅持安全信息= FALSE;集成安全性=真;」) 使用通訊作爲新的SqlCommand() 隨着通訊 ■連接=康恩 .CommandType = CommandType.Text .CommandText =查詢

 If LogTypeComboBox.SelectedIndex = -1 Then 'Log Type: Accept Convert dbNull 
      .Parameters.AddWithValue("@LogType", SqlDbType.NVarChar).Value = DBNull.Value 
     Else 
      .Parameters.AddWithValue("@LogType", LogTypeComboBox.SelectedItem) 
     End If 
     If ReleaseComboBox.SelectedIndex = -1 Then 'Release Type: Accept Convert dbNull 
      .Parameters.AddWithValue("@ReleaseType", SqlDbType.NVarChar).Value = DBNull.Value 
     Else 
      .Parameters.AddWithValue("@ReleaseType", ReleaseComboBox.SelectedItem) 
     End If 
     If ReferenceComboBox.SelectedIndex = -1 Then 'Reference Type: Accept Convert dbNull 
      .Parameters.AddWithValue("@ReferenceType", SqlDbType.NVarChar).Value = DBNull.Value 
     Else 
      .Parameters.AddWithValue("@ReferenceType", ReferenceComboBox.SelectedItem) 
     End If 
     If ChangeComboBox.SelectedIndex = -1 Then 'Change Type: Accept Convert dbNull 
      .Parameters.AddWithValue("@ChangeType", SqlDbType.NVarChar).Value = DBNull.Value 
     Else 
      .Parameters.AddWithValue("@ChangeType", ChangeComboBox.SelectedItem) 
     End If 
     If FunctionalAreaComboBox.SelectedIndex = -1 Then 'Functional Area: Accept Convert dbNull 
      .Parameters.AddWithValue("@Area", SqlDbType.NVarChar).Value = DBNull.Value 
     Else 
      .Parameters.AddWithValue("@Area", FunctionalAreaComboBox.SelectedItem) 
     End If 
     If DescriptionTextBox.Text.Length = 0 Then 'Description: Accept Convert dbNull 
      .Parameters.AddWithValue("@Description", SqlDbType.Text).Value = DBNull.Value 
     Else 
      .Parameters.AddWithValue("@Description", DescriptionTextBox.Text) 
     End If 
     If NotesTextBox.Text.Length = 0 Then 'Notes: Accept Convert dbNull 
      .Parameters.AddWithValue("@Notes", SqlDbType.Text).Value = DBNull.Value 
     Else 
      .Parameters.AddWithValue("@Notes", NotesTextBox.Text) 
     End If 
     .Parameters.AddWithValue("@Date", DateDateTimePicker.Value.Date.ToString("yyyy-MM-dd")) 'Date: No Null conversion 
     If MajorVersionTextBox.Text.Length = 0 Then 'MajorVersion: Accept Convert dbNull 
      .Parameters.AddWithValue("@MajorVersion", SqlDbType.Text).Value = DBNull.Value 
     Else 
      .Parameters.AddWithValue("@MajorVersion", MajorVersionTextBox.Text) 
     End If 
     If MinorVersionTextBox.Text.Length = 0 Then 'MinorVersion: Accept Convert dbNull 
      .Parameters.AddWithValue("@MinorVersion", SqlDbType.Text).Value = DBNull.Value 
     Else 
      .Parameters.AddWithValue("@MinorVersion", MinorVersionTextBox.Text) 
     End If 
     If RevisionVersionTextBox.Text.Length = 0 Then 'RevisionVersion: Accept Convert dbNull 
      .Parameters.AddWithValue("@RevisionVersion", SqlDbType.Text).Value = DBNull.Value 
     Else 
      .Parameters.AddWithValue("@RevisionVersion", RevisionVersionTextBox.Text) 
     End If 
     If BuildVersionTextBox.Text.Length = 0 Then 'BuildVersion: Accept Convert dbNull 
      .Parameters.AddWithValue("@BuildVersion", SqlDbType.Text).Value = DBNull.Value 
     Else 
      .Parameters.AddWithValue("@BuildVersion", BuildVersionTextBox.Text) 
     End If 
    End With 
    Try 
     conn.Open() 
     comm.ExecuteNonQuery() 
    Catch ex As SqlException 
     MessageBox.Show(ex.Message.ToString(), "Error Message") 
    End Try 
End Using 

末使用