1
我也遇到一個問題,我似乎無法繞到我的頭。
我有一個表的數據庫稱爲
客戶 - 客戶ID(主鍵),名字,姓氏,地址,郵編 和性別。它充滿了512行。
我在VB中創建了一個小應用程序,您可以使用該信息填寫表單,然後單擊按鈕註冊新客戶。下面是代碼的樣本:
Private Sub save(ByRef SQLStatement As String)
If minConnection.State = ConnectionState.Closed Then
myConnection.Open()
End If
With minCommand
.CommandText = SQLStatement
.CommandType = CommandType.Text
.Connection = minConnection
.ExecuteNonQuery()
End With
MsgBox("Saved to Database", MsgBoxStyle.Exclamation, "Saved!")
myConnection.Close()
myConnection.Dispose()
End Sub
Private Sub cmdCustomer_Click(sender As Object, e As EventArgs) Handles cmdCustomer.Click
myConnection.Open()
If rbW.Checked = True Then
sex = "W"
Else
sex = "M"
End If
Dim newCustomer As String = ("insert into customer(CustomerID, Firstname, Surname, Address, Zipcode, Sex) VALUES(" & txtCustomerID.Text & ", '" & txtFirstname.Text & "', '" & txtSurname.Text & "', '" & txtAddress.Text & "', " & txtZipcode.Text & ", '" & sex & "')")
save(newCustomer)
End Sub
在我的經驗,這應該做的工作,但由於某種原因,我不能看到我的數據庫中新的條目。但是,如果我嘗試使用相同的CustomerID創建新客戶,則會收到類似Duplicate Entry
的錯誤消息。有了這條消息,我知道數據應該已經被插入。爲了進一步測試,我使用sql語句創建了一個datagridview:Select * from customer
。 datagridview確實顯示我的新註冊客戶!
考慮到這一切,我認爲問題出在MySQL Workbench中,而不是我的代碼甚至是Visual Basic。雖然,我似乎無法找到如何解決這個問題。我在這裏遠嗎?這只是一個愚蠢的錯誤?
對不起,我的英語,這不是我的第一語言,也是我的代碼,因爲它是非常業餘的。預先感謝您提供的任何建議。
這可能是由MySQL的默認隔離級別'可重複讀取'造成的。嘗試在運行SELECT之前在SQL客戶端運行'commit'(或'rollback')。這將結束當前的交易並開始新的交易。 – 2013-05-10 13:41:09
'Duplicate Entry'意味着您不能插入數據,因爲有重複,請嘗試首先刪除重複。 – Rahul 2013-05-10 13:42:46
ZipCode字段是一個數字嗎? – Steve 2013-05-10 13:42:47