Member 13904037 Ответов: 1

Как добавить текст в mysql на buttonclick


private void pictureBox1_Click(object sender, EventArgs e)
        {
            System.IO.Stream str = Properties.Resources.commander_5;
            System.Media.SoundPlayer snd = new System.Media.SoundPlayer(str);
            snd.Play();

            label1.Text = "S1";



            
   string constring = "datasource=123.456.678;port=3306;username=1234;password=1234";
            string query = "update mysqlcshap.Fahrzeug set (Status) TEXT('1');";
            MySqlConnection Dateneingabe = new MySqlConnection(constring);
            MySqlCommand cmd = new MySqlCommand(query, Dateneingabe);
            MySqlDataReader myReader;


            try
            {
                Dateneingabe.Open();
                myReader = cmd.ExecuteReader();
           
                while (myReader.Read()) { }





            }




            catch (Exception ex)
            {  }


Что я уже пробовал:

Как я могу обновить текст в MYSQL на Buttonclick?

1 Ответов

Рейтинг:
8

Mike V Baker

Запрос должен выглядеть примерно так

"update mysqlcshap.Fahrzeug set Status='1';"
Однако это будет обновляться все записи в базе данных, которые, вероятно, не то, что вы хотите. Вероятно, вы хотите обновить конкретную запись, и для этого вам нужно предложение WHERE
"update mysqlcshap.Fahrzeug set Status='1' WHERE Id=1234;"
Это предполагает, что у вас есть значение первичного ключа в вашей таблице, и его имя - "Id". Конечно, вам нужно знать, что такое идентификатор, чтобы сделать это.
Иногда можно создать поля, которые являются зарезервированными словами. Я не помню, является ли "статус" одним из них, но просто на всякий случай оберните имена полей в [].
Вы используете ExecuteReader. Этот запрос ничего не возвращает, так что читать нечего. Используйте ExecuteNonQuery для выполнения команды, которая не читается.
Ваша строка подключения нуждается в исправлении (см. этот. Я не вижу аргумента "база данных", возможно, это mysqlcshap?
Обычно я заключаю свое соединение в оператор using. Сложите все это вместе и вот что я придумал
private void pictureBox1_Click(object sender, EventArgs e)
{
    System.IO.Stream str = Properties.Resources.commander_5;
    System.Media.SoundPlayer snd = new System.Media.SoundPlayer(str);
    snd.Play();
    label1.Text = "S1";
    
    string constring = "datasource=123.456.678;Database=mysqlcshap;port=3306;User Id=1234;Password=1234";
    string query = "update Fahrzeug set [Status]='1' WHERE Id=1234;";
    using (MySqlConnection Dateneingabe = new MySqlConnection(constring))
    {
        MySqlCommand cmd = new MySqlCommand(query, Dateneingabe);
        try
        {
            Dateneingabe.Open();
            cmd.ExecuteNonQuery();
            Dateneingabe.Close();
        }
        catch (Exception ex)
        { 
            // DO SOMETHING WITH THE EX HERE!! 
        }
    }
}
ХТХ, Майк