我的情景,如何插入空值数据库
进出口工作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都是很受欢迎的选项。 –