我試圖向MS ACCESS DB插入值,但無法將任何數據插入到ACCESS中。我有CustomerID作爲主鍵與自動增量。運行代碼後,它總是給我總客戶0 *請幫我弄清楚這裏出了什麼問題!無法通過VB.NET查看或插入MS Access oledb
這是我的代碼
Public Const settings As String = "Provider=Microsoft.ACE.OLEDB.12.0;" +
"Data Source=Provider=Microsoft.ACE.OLEDB.12.0;" +
"Data Source=C:\Users\sha\Documents\Visual Studio 2010\Projects\Assign2_24\Assign2_24\db24.accdb;"
Dim vConnStr As New OleDbConnection(settings)
If vboo = "" Then
Try
vConnStr.Open()
Dim vSQL As String = "Insert into Customer "
vSQL = vSQL & " (FirstName, LastName, Telephone, Email)"
vSQL = vSQL & " Values (?, ?, ?, ?)"
Dim cmd As New Data.OleDb.OleDbCommand(vSQL, vConnStr)
cmd.Parameters.AddWithValue("@p1", cusFName)
cmd.Parameters.AddWithValue("@p2", cusLName)
cmd.Parameters.AddWithValue("@p3", cusTP)
cmd.Parameters.AddWithValue("@p4", cusEmail)
Dim vRowsUpdated As Integer = cmd.ExecuteNonQuery
MessageBox.Show("Successfully saved to the system" & vRowsUpdated)
'*************************************** Retrieve the CusID that have inserted *******************************
Dim vSQL2 As String = "SELECT @@IDENTITY"
Dim cmd2 As New Data.OleDb.OleDbCommand(vSQL2, vConnStr)
Dim vCusId As Integer = CInt(cmd2.ExecuteScalar())
MessageBox.Show("*** ID: " & vCusId)
'Dim vCusId As Integer = CInt(cmd2.ExecuteScalar())
'MessageBox.Show("*** ID: " & vCusId)
Dim vSQL3 As String = "Select count (*) from Customer"
Dim cmd3 As New Data.OleDb.OleDbCommand
cmd3.CommandText = vSQL3
Dim vCount3 As Integer = cmd.ExecuteScalar()
MessageBox.Show("***** Total Customers " & vCount3)
Catch ex As Data.Odbc.OdbcException
Dim vErMsg As String = " *** Error occured while registering the customer ***"
vErMsg = vErMsg & ex.ErrorCode & "***" & ex.Message & "***"
Finally
vConnStr.Close()
End Try
感謝您指出這一點! ( –
)你的第二個查詢中有一個輸入錯誤,你再次傳遞第一個sql而不是'SELECT @@ IDENTITY' – Steve
嗨Steve感謝你現在拿起vCusId部分工作;)但是主要問題是它不會存儲在我的數據庫中!當我運行Dim vCusId作爲Integer = CInt(cmd2.ExecuteScalar()) MessageBox.Show(「***** Total Customers」&vCusId)它拋出我*****總共客戶0和沒有什麼是在數據庫 –