好吧,我有一個名爲in-out
的Mysql dsetup,我寫了一個vb.net客戶端程序,從數據庫的表中獲取信息,將其顯示在數據網格視圖中,然後允許用戶編輯此信息並更新它在服務器上。更新MySQL數據庫問題....幫助?
現在我在我的Gateway筆記本電腦上託管服務器,並且也從同一檯筆記本電腦連接到服務器,因此我使用localhost
作爲服務器名稱。我的問題是,當我進入程序並更改信息並單擊更新時,沒有任何反應......信息保持不變,但沒有出現錯誤,語法錯誤或程序崩潰的跡象。
我試過在我家的另一臺電腦上運行這個,我得到了相同的結果。我可以毫無困難地訪問信息,但更新它就是我遇到麻煩的地方。如果我的代碼有問題,它會顯示某種錯誤或要求我調試我的腳本,這會使它更容易解決,因此我確信它與我的數據庫有關。
之前,我得到了這一步,我不停地檢索該說的一樣
DUPLICATE默認項主鍵=「0」
這意味着該信息時,得到一個錯誤與此錯誤相關的表中的列不能有多個默認值'0',但現在已經消失...(儘管我沒有改變任何東西)
這是將重新創建我的數據庫的腳本佈局。只需在MySql WorkBench或MySql Query Browser中運行它(或者您用來管理Sql數據庫的東西)。請告訴我我做錯了什麼,因爲我需要在十二月之前完成這個程序! (4個月了)
http://www.megaupload.com/?d=VA639MP5
這裏是我的更新代碼:(以防萬一,問題出在我的程序不是數據庫)
Private Sub cmdupdate_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles cmdupdate.Click
Dim conn As New MySqlConnection
Dim myCommand As New MySqlCommand
'#######
conn.ConnectionString = "server=" & frmLogin.txtserver.Text & ";" _
& "user id=" & frmLogin.txtusername.Text & ";" _
& "password=" & frmLogin.txtpassword.Text & ";" _
& "database=in_out"
'#######
myCommand.Connection = conn
myCommand.CommandText = "INSERT INTO event(user_id, message_id, timestamp, status, creator)" _
& "VALUES(?UserID, ?MessageID, NOW(), ?Status, ?Creator)"
myCommand.Parameters.AddWithValue("?UserID", myUserID)
myCommand.Parameters.AddWithValue("?MessageID", cbomessage.SelectedValue)
myCommand.Parameters.AddWithValue("?Status", cbostatus.SelectedItem)
myCommand.Parameters.AddWithValue("?Creator", myUserID)
Try
conn.Open()
myCommand.ExecuteNonQuery()
Catch myerror As MySqlException
MsgBox("There was an error updating the database: " & myerror.Message)
End Try
refreshStatus(dgvstatus)
End Sub
其他細節:
- 操作系統:Windows 7 Professional x64
- 軟件:Visual Basic 2010 Express
- 服務器名稱:「localhost」的
- SQL管理:MySQL工作臺5.2.34 CE
如果您需要任何其他細節只是讓我知道,因爲現在我不能想別的,你會需要提供任何幫助:P
謝謝!
那沒有幫助...我認爲它已經與「ExecuteNonQuery()」函數有關,因爲這是我的更新代碼和我的刷新代碼之間唯一真正的區別......你能解釋一下執行非查詢函數完全是什麼嗎?或者可能是一個替代更新代碼? – daniel11
ExecuteNonQuery告訴數據庫執行你的代碼......但不期望某種類型的CURSOR像SELECT一樣會返回...因此可以用於INSERT/UPDATE/DELETE等...請詳細解釋你想要實現和什麼不工作... – Yahia
我想從我的數據庫中獲取信息,將其顯示在datagridview控件中,能夠使用預先定義的組合框選擇更改顯示在datagridview控件中的信息,以及最後,使用datagridview控件中的信息更新數據庫上的信息。更新腳本(在原始文章中找到)完全不起作用。我可以更改datagridview上的信息,但它不會在數據庫上更改它... – daniel11