Mysql
 sql >> Baza danych >  >> RDS >> Mysql

C#, MySQL - wystąpił błąd krytyczny podczas wykonywania polecenia - Sprawdzałem inne rozwiązania, czegoś mi brakuje

Ta linia jest nieprawidłowa

using (conn = new MySqlConnection(cs));

Usuń średnik i umieść wszystko, co wymaga zmiennej MySqlConnection w {} zablokuj

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();

}

W końcowym zapytaniu jest też inny błąd. Brak spacji między parametrem @TransactionDate a klauzulą ​​WHERE. W przypadkach, w których potrzebny jest długi tekst polecenia SQL, uważam za bardzo przydatne dosłowną kontynuację znaku wiersza ciągu @

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. Znajdowanie różnicy między ostatnim a drugim najpóźniejszym terminem

  2. Limit rozmiaru VARCHAR MySQL

  3. Jakie są różnice między typami danych BLOB i TEXT w MySQL?

  4. Importowanie JSON do Mysql

  5. Liczba wierszy z PDO