Mysql
 sql >> база данни >  >> RDS >> Mysql

C#, MySQL - възникна фатална грешка по време на изпълнение на командата - Проверих други решения, нещо, което ми липсва

Тази линия е грешна

using (conn = new MySqlConnection(cs));

Премахнете точката и запетаята и включете всичко, което се нуждае от променливата MySqlConnection в {} блок

using (MySqlConnection conn = new MySqlConnection(cs))
{
    // No need to test if the connection is not open....
    conn.Open();
    .........

    // Not needed (at least from your code above
    // MySqlDataAdapter MyAdapter2 = new MySqlDataAdapter();
    // MyAdapter2.SelectCommand = myCommand2;

    ... calcs follow here

    // Attention here, if the query returns null (no input match) this line will throw
    oldpoints = (int)myCommand2.ExecuteScalar();

    .... other calcs here


    MySqlCommand cmdDataBase = new MySqlCommand(query, conn);
    cmdDataBase.Parameters.Add("@input", SqlDbType.Int).Value = Convert.ToInt32(textBox2.Text);
    cmdDataBase.Parameters.AddWithValue("@Points", new_points);
    cmdDataBase.Parameters.AddWithValue("@Rewards", new_rewards);
    cmdDataBase.Parameters.AddWithValue("@Transaction", textBox3.Text);
    cmdDataBase.Parameters.AddWithValue("@TransationDate", transaction_date);

    // Use ExecuteNonQuery for INSERT/UPDATE/DELETE and other DDL calla
    cmdDataBase.ExecuteNonQuery();

    // Not needed
    // MySqlDataReader myReader2;
    // myReader2 = cmdDataBase.ExecuteReader();

    // Not needed, the using block will close and dispose the connection
    if(conn.State == ConnectionState.Open)
        conn.Close();

}

Има и друга грешка в крайната заявка. Липсва интервал между параметър @TransactionDate и клаузата WHERE. В случаите, когато е необходим дълъг текст на SQL команда, намирам за много полезно дословното продължение на символа на низ @

string query = @"UPDATE members Set [email protected], [email protected], 
                        [email protected], [email protected]
                        WHERE id = @input;";



  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. PDO отказва да изтрие ред данни (в конкретна таблица)

  2. Как да зададете набора от символи и съпоставяне на база данни в MySQL

  3. Как да зададете ръчно начална стойност като 1000 в MySQL

  4. Избягване на повторение на JTextField setText около програмата

  5. Неуспешно зареждане на клас драйвер com.mysql.jdbc.Driver