我正在尝试将NULL值插入到string类型的变量中。请告诉我可能的方法。我搜索了这个问题,发现DBNul.value可以分配给必须作为NULL插入的特定变量。当我尝试它时,错误地说DB.Null无法转换为system.string
类型。
答案 0 :(得分:2)
您可以通过将字符串设置为空来为字符串分配NULL值
dim MyString as string
MyString = nothing
VBNull.Value通常用于在使用数据库插入时应用空值,或验证接收的值是否为空。
编辑:正如您明确要为数据库添加空值,可以通过直接在命令对象中设置空值来实现:
Dim Command As New OleDb.OleDbCommand 'Use the proper database command
Command.CommandText = "INSERT INTO Table (Column1, Column2) Values (@Value1, @Value2)"
Command.Parameters.AddWithValue("@Value1", If(string.IsNullOrEmpty(MyString1), DBNull.Value, MyString1))
Command.Parameters.AddWithValue("@Value2", If(string.IsNullOrEmpty(MyString2), DBNull.Value, MyString2))
答案 1 :(得分:1)
使用Linq to SQL或类似的Entity Framework,您可以使用Nothing
存储DBNull
我有一个简单的表...
CREATE TABLE [dbo].[Table_1](
[ID] [bigint] IDENTITY(1,1) NOT NULL,
[TestID] [bigint] NOT NULL,
[Description] [nchar](10) NULL,
并使用此代码...
Sub Main()
Using dc As New DataClasses1DataContext
Dim testNothing = New Table_1
testNothing.Description = Nothing
testNothing.TestID = 1
dc.Table_1s.InsertOnSubmit(testNothing)
Dim testEmpty = New Table_1
testEmpty.Description = ""
testEmpty.TestID = 2
dc.Table_1s.InsertOnSubmit(testEmpty)
dc.SubmitChanges()
End Using
End Sub
表的内容是......
ID TestID 描述
1 1 NULL
2 2
答案 2 :(得分:0)
你想要使用Nothing。
myStringVar = Nothing