Database 如何根据数据的可用性从VB.Net将数据输入access
如何根据数据的可用性从VB.Net将数据输入access 我正在编写一个将数据插入Access数据库的代码。我成功地做到了这一点,但也有一些例外,我不知道如何处理。所以请帮帮我 问题是我有11个文本框。所有这些都是强制性的,但有一个文本框(TextBox3)是可选的。我的意思是,有时候TextBox3中会有数据,有时候不会。基于Textbox3中数据的可用性,我应该能够更新我的access数据库 这是我的密码Database 如何根据数据的可用性从VB.Net将数据输入access,database,vb.net,ms-access,Database,Vb.net,Ms Access,如何根据数据的可用性从VB.Net将数据输入access 我正在编写一个将数据插入Access数据库的代码。我成功地做到了这一点,但也有一些例外,我不知道如何处理。所以请帮帮我 问题是我有11个文本框。所有这些都是强制性的,但有一个文本框(TextBox3)是可选的。我的意思是,有时候TextBox3中会有数据,有时候不会。基于Textbox3中数据的可用性,我应该能够更新我的access数据库 这是我的密码 Imports System.Data.OleDb Public Class Form
Imports System.Data.OleDb
Public Class Form1
Dim provider As String
Dim datafile As String
Dim connString As String
Dim myConnection As OleDbConnection = New OleDbConnection
Dim str As String
Private Sub Button1_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button1.Click
provider = "Provider=Microsoft.ACE.OLEDB.12.0;Data Source="
datafile = "D:\Database\sampletest.accdb"
connString = provider & datafile
myConnection.ConnectionString = connString
myConnection.Open()
Dim insrt0 As String
insrt0 = "Insert into 01bkDetails([bk01],[bk02],[bk03],[bk04],[bk05],[bk06],[bk07],[bk08],[bk09],[bk10],[bk11]) Values (?,?,?,?,?,?,?,?,?,?,?)"
Dim cmd1 As OleDbCommand = New OleDbCommand(insrt0, myConnection)
cmd1.Parameters.Add(New OleDbParameter("bk01", CType(Textbox1.Text, String)))
cmd1.Parameters.Add(New OleDbParameter("bk02", CType(Textbox2.Text, String)))
cmd1.Parameters.Add(New OleDbParameter("bk03", CType(Textbox3.Text, String)))
cmd1.Parameters.Add(New OleDbParameter("bk04", CType(Textbox4.Text, String)))
cmd1.Parameters.Add(New OleDbParameter("bk05", CType(Textbox5.Text, String)))
cmd1.Parameters.Add(New OleDbParameter("bk06", CType(Textbox6.Text, String)))
cmd1.Parameters.Add(New OleDbParameter("bk07", CType(Textbox7.Text, String)))
cmd1.Parameters.Add(New OleDbParameter("bk08", CType(Textbox8.Text, String)))
cmd1.Parameters.Add(New OleDbParameter("bk09", CType(Textbox9.Text, String)))
cmd1.Parameters.Add(New OleDbParameter("bk10", CType(Textbox10.Text, String)))
cmd1.Parameters.Add(New OleDbParameter("bk11", CType(Textbox11.Text, String)))
Try
cmd1.ExecuteNonQuery()
cmd1.Dispose()
myConnection.Close()
Catch ex As Exception
MsgBox(ex.Message)
End Try
End Sub
End Class
我知道检查文本框中是否有数据的代码是
If (Not String.IsNullOrWhiteSpace(Textbox3.Text)) Then
End If
我知道这段代码应该在此时执行cmd1.ExecuteNonQuery()
我的问题是我应该在“如果”和“如果结束”之间写什么。。。因为我希望只影响文本框3,而不影响其余的文本框
我还想知道Access数据库中是否可以有一个空字段,或者是否必须用一些数据填充它
谢谢。`在将
Textbox3.Text
作为参数添加到命令对象之前,请检查其值:
Imports System.Data.OleDb
Public Class Form1
Dim provider As String
Dim datafile As String
Dim connString As String
Dim myConnection As OleDbConnection = New OleDbConnection
Dim str As String
Private Sub Button1_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button1.Click
provider = "Provider=Microsoft.ACE.OLEDB.12.0;Data Source="
datafile = "D:\Database\sampletest.accdb"
connString = provider & datafile
myConnection.ConnectionString = connString
myConnection.Open()
Dim insrt0 As String
insrt0 = "Insert into 01bkDetails([bk01],[bk02],[bk03],[bk04],[bk05],[bk06],[bk07],[bk08],[bk09],[bk10],[bk11]) Values (?,?,?,?,?,?,?,?,?,?,?)"
Dim cmd1 As OleDbCommand = New OleDbCommand(insrt0, myConnection)
cmd1.Parameters.Add(New OleDbParameter("bk01", CType(Textbox1.Text, String)))
cmd1.Parameters.Add(New OleDbParameter("bk02", CType(Textbox2.Text, String)))
If (String.IsNullOrWhiteSpace(Textbox3.Text)) Then
cmd1.Parameters.Add(New OleDbParameter("bk03", CType(Textbox3.Text, String)))
Else
' Insert an empty String
cmd1.Parameters.Add(New OleDbParameter("bk03", ""))
End If
cmd1.Parameters.Add(New OleDbParameter("bk04", CType(Textbox4.Text, String)))
cmd1.Parameters.Add(New OleDbParameter("bk05", CType(Textbox5.Text, String)))
cmd1.Parameters.Add(New OleDbParameter("bk06", CType(Textbox6.Text, String)))
cmd1.Parameters.Add(New OleDbParameter("bk07", CType(Textbox7.Text, String)))
cmd1.Parameters.Add(New OleDbParameter("bk08", CType(Textbox8.Text, String)))
cmd1.Parameters.Add(New OleDbParameter("bk09", CType(Textbox9.Text, String)))
cmd1.Parameters.Add(New OleDbParameter("bk10", CType(Textbox10.Text, String)))
cmd1.Parameters.Add(New OleDbParameter("bk11", CType(Textbox11.Text, String)))
Try
cmd1.ExecuteNonQuery()
cmd1.Dispose()
myConnection.Close()
Catch ex As Exception
MsgBox(ex.Message)
End Try
End Sub
End Class
OleDbParameter
构造函数无法接受Null
字符串值。因此,如果是这样,请从非空字符串值、空字符串中构造OleDbParameter
。。。谢谢你的解释兄弟,我不知道它不会接受空字符串值。。。顺便说一句,我知道这是一个离题的问题,但是。。。你是否知道,如果我手动输入某个链接,为什么在access的超链接字段中的链接开头和结尾都会出现#号???