У меня есть MySQL dsetup с именем in-out
, и я написал клиентскую программу vb.NET, чтобы получать информацию из таблицы в базе данных, отображать ее в виде таблицы данных, а затем разрешать пользователю редактировать эту информацию иобновите его на сервере.
Сейчас я размещаю сервер на своем ноутбуке Gateway, а также подключаюсь к нему с того же ноутбука, поэтому в качестве имени сервера я использую localhost
.Моя проблема в том, что когда я захожу в программу и изменяю информацию и нажимаю кнопку обновить, ничего не происходит ... Информация остается прежней, но нет никаких признаков ошибки, сбоя синтаксиса или сбоя программы.
Я попытался запустить это на другом компьютере в моем доме, и я получил те же результаты.Я могу получить доступ к информации без проблем, но при ее обновлении возникают проблемы.Если бы у меня была проблема с моим кодом, он вывел бы какую-то ошибку или попросил бы отладить мой скрипт, что значительно облегчило бы его решение, поэтому я уверен, что это как-то связано с моей базой данных.
Прежде чем перейти к этому шагу, я продолжал получать сообщение об ошибке при извлечении информации, в которой было указано что-то вроде
DUPLICATE DEFAULT ENTRY FOR PRIMARY KEY = '0'
Это означает, что столбцы в таблице, относящиеся к этой ошибке, не могут иметь более одного значения по умолчанию, равного '0', но теперь этого нет ... (хотя я ничего не менял)
Вот скрипт, который будет воссоздавать мой макет базы данных.Просто запустите его в MySQL WorkBench или MySQL Query Browser (или что бы вы ни использовали для управления вашей базой данных SQL).
Вот мой код обновления: (на тот случай, если проблема заключается в моей программе, а не в базе данных)
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 Manager: MySQL Workbench 5.2.34 CE