1

Firebird db から特定のレコードを削除するために、ユーザーの入力をパラメータとして取得したいと考えています。

だから私は次のコードを持っています

private void btnOk_Click(object sender, EventArgs e)
        {
            string code = txtDeleteField.Text;
            string connString = ConfigurationManager.AppSettings["DemoAppConnectionString"];

            using (FbConnection conn = new FbConnection(connString))
            {
                using (FbCommand cmd = new FbCommand())
                {
                    cmd.CommandText = "DELETE * FROM DEMOAPP WHERE CODE= @P1";
                    cmd.Parameters.AddWithValue("@P1", code);
                    cmd.Connection = conn;
                    conn.Open();
                    cmd.Transaction = conn.BeginTransaction();

                    int a = cmd.ExecuteNonQuery();
                    if (a == 0)
                    {
                        MessageBox.Show("Error!");
                    }
                    else
                    {
                        MessageBox.Show("Record deleted, ok!" );
                    }
                }

            }
        }

このコードはエラーを生成します

タイプ 'FirebirdSql.Data.FirebirdClient.FbException' の未処理の例外が FirebirdSql.Data.FirebirdClient.dll で発生しました

追加情報: 動的 SQL エラー
SQL エラー コード = -104
トークン不明 - 行 1、列 8
*
4

1 に答える 1

1

あなたのクエリは間違ってい"DELETE * FROM DEMOAPP WHERE CODE= @P1"ます。無効です:ステートメントに no*があってはなりません。DELETE

に変更すると"DELETE FROM DEMOAPP WHERE CODE= @P1"、問題が解決するはずです。

于 2013-06-27T09:41:31.330 に答える