2013-05-10 55 views
1

你好MySQL不顯示新的數據

我也遇到一個問題,我似乎無法繞到我的頭。

我有一個表的數據庫稱爲

客戶 - 客戶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。雖然,我似乎無法找到如何解決這個問題。我在這裏遠嗎?這只是一個愚蠢的錯誤?

對不起,我的英語,這不是我的第一語言,也是我的代碼,因爲它是非常業餘的。預先感謝您提供的任何建議。

+0

這可能是由MySQL的默認隔離級別'可重複讀取'造成的。嘗試在運行SELECT之前在SQL客戶端運行'commit'(或'rollback')。這將結束當前的交易並開始新的交易。 – 2013-05-10 13:41:09

+0

'Duplicate Entry'意味着您不能插入數據,因爲有重複,請嘗試首先刪除重複。 – Rahul 2013-05-10 13:42:46

+0

ZipCode字段是一個數字嗎? – Steve 2013-05-10 13:42:47

回答

2

要解決此問題,您必須運行「回滾」。