2011-11-17 186 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 

末使用