-1

mysql の sql コマンドに問題があります。asp.net アプリケーションがあり、mysql データベースをデータベースとして使用しています。データベース内のレコードを挿入、更新、削除、および選択できるクラスを構築したいと考えています。update コマンドに問題があります。phpmyadmin では動作しますが、私のクラスでは動作しません:/

これが私のコードです

public void UpdateRecord(string title, string firstname, string lastname, string company,
                               string timefrom, string timeto)
        {
            connection = new MySqlConnection();

            try
            {
                MySqlCommand command = connection.CreateCommand();

                //for testing
                string sql = "UPDATE 'tb_gast' SET FIRSTNAME='test' WHERE ID=270";

                command.CommandText = sql;

                connection.Open();

                command.ExecuteNonQuery();

            }
            catch (Exception)
            {

            }
            finally
            {
                connection.Close();
            }
        }

このコマンドはphpmyadminで機能します

UPDATE `tb_gast` 
SET 
FIRSTNAME='uu',
LASTNAME='uu',
COMPANY='uu'
WHERE ID=270
4

3 に答える 3

2

テーブル名から引用符を削除します'tb_gast'。それ以外の :

UPDATE 'tb_gast' SET FIRSTNAME='test' WHERE ID=270

これを試して:

UPDATE tb_gast SET FIRSTNAME = 'test' WHERE ID=270
于 2012-12-03T13:16:12.453 に答える
1

これを試してください...

void UpdateRecord(string title、string firstname、string lastname、string company、string timefrom、string timeto){connection = new MySqlConnection();

        try
        {
           string sql = "UPDATE tb_gast SET FIRSTNAME='test' WHERE ID=270";
           MySqlCommand command = new MySqlCommand(sql, connection);
           connection.Open();

            command.ExecuteNonQuery();

        }
        catch (Exception)
        {

        }
        finally
        {
            connection.Close();
        }
    }
于 2012-12-03T13:46:51.977 に答える
1

バックティックの代わりに、テーブル名を一重引用符で囲んでいます。
バッククォートは、キーの組み合わせを使用して入力できますALT+096

UPDATE `tb_gast` SET FIRSTNAME = 'test' WHERE ID=270

編集:あなたの質問をもっと深く見てください。
MySqlConnection を宣言し、接続文字列なしで初期化することに注意してください。
これがあなたの本当のコードなら、それが機能しないのも不思議ではありません

これはあなたのコードがどうあるべきかです

        using(connection = new MySqlConnection(GetConnectionString())
        {
            connection.Open();
            using(MySqlCommand command = connection.CreateCommand();
            {
                //for testing
                string sql = "UPDATE `tb_gast` SET FIRSTNAME='test' WHERE ID=270";
                command.CommandText = sql;
                command.ExecuteNonQuery();
            }
        }

GetConnectionString() は、構成ファイルなどの永続的なストレージから接続文字列を返すメソッドである必要があります

于 2012-12-03T13:19:33.920 に答える