我的情景,如何插入空值數據庫
進出口工作asp.net VB應用程序 我已經設置值將被插入Database.But他們的一些領域都是可選的,以填補
我需要檢查文本empty.if空我不應該輸入數據庫的值。如何在此工作
我的情景,如何插入空值數據庫
進出口工作asp.net VB應用程序 我已經設置值將被插入Database.But他們的一些領域都是可選的,以填補
我需要檢查文本empty.if空我不應該輸入數據庫的值。如何在此工作
使用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
...
我通常使用ConvertEmptyStringToNull
作爲可選值。
http://www.google.com/search?q=convertemptystringtonull+asp.net
第一對夫婦的鏈接給出了幾個例子,在MSDN顯示了其在VB
怎麼做,你可以檢查它像這樣
If String.IsNullOrEmpty(TextBox1.Text.ToString().Trim) Then
Databasevaluetoinsert = DBNull.Value
Else
Databasevaluetoinsert = TextBox1.Text
End If
不需要比較布爾值 - 真。如果使用String.IsNullOrEmpty(..)Then .. Else ... End If – adatapost
下面是我如何在代碼中處理這個問題的示例。這是相當長的,因爲我想檢查數據庫中可以爲空的每個字段。
昏暗查詢作爲字符串=的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
末使用
首先你需要說你是如何訪問數據庫。 System.Data,LINQ to SQL,nHibernate和Entity Framework都是很受歡迎的選項。 –