private void button4_Click(object sender, EventArgs e)
{
MySqlConnection connection = new MySqlConnection("datasource=localhost;port=3306;Initial Catalog='liblib';Data Source=localhost;username=root;password=admin");
String query = "UPDATE loans SET dataRet=@data1 WHERE loans.idloans = @idloan";
MySqlCommand cmd = new MySqlCommand(query, connection);
int id = Int32.Parse(textBox9.Text);
cmd.Parameters.Add("@data1", MySqlDbType.Date).Value = dateTimePicker1.Value;
cmd.Parameters.Add("@idloan", MySqlDbType.Int32).Value = id;
connection.Open();
if (cmd.ExecuteNonQuery() == 1)
{
MessageBox.Show("Succesful!");
connection.Close();
FIllCard();
}
else
{
MessageBox.Show("Error");
connection.Close();
}
Когда я выполняю этот запрос UPDATE в phpmyadmin, он работает и обновляет запись:
UPDATE loans SET dataRet='2017-5-6' WHERE loans.idloans = 23.
Но проблема в том, что я пробую это в своей форме с параметрами. Он всегда возвращает мне сообщение «Ошибка» (ExecuteNonQuery отличается от 1), и когда я проверяю базу данных, обновлений нет. Типы переменных в моей базе данных: idloans - int; dataRet = дата;
Только обновление. Запросы на вставку работают.
Возможно, вам следует проверить, что это за ошибка, если она не возвращает 1, а предлагает найти больше 1 или нет ..
Ознакомьтесь с этим сообщением: обновить таблицу mySQL с помощью C#, у него нет ответа, помеченного как решение, но OP этого вопроса имеет проблемы с аутентификацией после использования кода первого ответа, возможно, это сработает для вас
Эта ошибка возникает для любого запроса или только для этого?