連接到MS Access數據庫我是新來的Visual Basic。我正在爲我的迷你項目開發Visual Basic 2010中的一個項目。我想將以Visual Basic形式插入的數據存儲到在ms access access 2007中創建的數據庫中。我鍵入了下面的代碼,但每次輸入數值到窗體並按提交我在消息框中獲得異常爲「溢出」。我無法找出原因。請幫助我。如何解決溢出異常,而從Visual Basic 2010
以下是代碼:
Imports System.Data.OleDb
Public Class dn_register
Dim provider As String
Dim dataFile As String
Dim connString As String
Dim myConnection As OleDbConnection = New OleDbConnection
Private Sub dn_sub_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles dn_sub.Click
provider = "Provider=Microsoft.ACE.OLEDB.12.0;Data Source="
dataFile = "F:\MyDatabase\MyProjectDatabase.accdb"
connString = provider & dataFile
myConnection.Close()
myConnection.ConnectionString = connString
myConnection.Open()
Dim str As String
str = "Insert into Dnr_tbl([Dname],[Age],[Bloodgroup],[Location],[Contact],[Email]) Values(?,?,?,?,?,?)"
Dim cmd As OleDbCommand = New OleDbCommand(str, myConnection)
cmd.Parameters.Add(New OleDbParameter("Dname", CType(TextBox1.Text, String)))
cmd.Parameters.Add(New OleDbParameter("Age", CType(TextBox2.Text, Integer)))
cmd.Parameters.Add(New OleDbParameter("Bloodgroup", CType(TextBox3.Text, String)))
cmd.Parameters.Add(New OleDbParameter("Location", CType(TextBox4.Text, String)))
cmd.Parameters.Add(New OleDbParameter("Contact", CType(TextBox5.Text, String)))
cmd.Parameters.Add(New OleDbParameter("Email", CType(TextBox6.Text, String)))
Try
cmd.ExecuteNonQuery()
cmd.Dispose()
myConnection.Close()
TextBox1.Clear()
TextBox2.Clear()
TextBox3.Clear()
TextBox4.Clear()
TextBox5.Clear()
TextBox6.Clear()
Catch ex As Exception
MsgBox(ex.Message)
End Try
End Sub
End Class
And here is the snapshot of my error message
從這裏:https://social.msdn.microsoft.com/Forums/vstudio/EN-US/853aec35-5b19-4126-b142-44dae2ad0a47/oledbexception溢出?論壇= vbgeneral我相信你的插入查詢可能是不正確的。 – Jaxi
如果不查看錶結構,很難判斷查詢參數是否有誤。最可疑的部分是'cmd.Parameters.Add(New OleDbParameter(「Age」,CType(TextBox2.Text,Integer)))',因爲'Age'列經常使用'Byte'數據類型。 –
就像一個筆記 - 存儲捐助者的年齡不是一個好主意 - 我會存儲他們的DOB。確保你的字符串是正確的長度。此外,VB.NET中的整數是4個字節,而它們在Access中是2個字節。你可能想在.NET中使用'Int16'。 – Paul