1

ローカル データベースから値を選択しようとすると、問題なく実行されます。しかし、挿入および削除しようとすると、クエリが実行されますが、行には影響しません。

これは、ローカル データベースから行を削除するために使用しているコードです。

        SqlCeConnection sqlConnection1 = new SqlCeConnection();
        sqlConnection1.ConnectionString = "Data Source = Database1.sdf";

        SqlCeCommand cmd = sqlConnection1.CreateCommand();
        cmd.CommandType = System.Data.CommandType.Text;
        cmd.CommandText = "DELETE FROM table1 WHERE slno=2";
        cmd.Connection = sqlConnection1;

        sqlConnection1.Open();
        cmd.Prepare();
        int aff=cmd.ExecuteNonQuery();//here its returning '0'
        MessageBox.Show(aff.ToString());
        sqlConnection1.Dispose();
        sqlConnection1.Close();
4

1 に答える 1

1

削除がどの行にも影響しない可能性があります。

余談ですがusing、コードで次のステートメントを使用することをお勧めします。

using (SqlCeConnection conn = new SqlCeConnection("Data Source = Database1.sdf"))
using (SqlCeCommand comm = new SqlCeCommand("DELETE FROM table1 WHERE slno = 2", conn))
{
    conn.Open();
    comm.CommandType = CommandType.Text;
    comm.ExecuteNonQuery();
}

これにより、関連するオブジェクトの破棄が処理されます。

SQL がデータベースに関連しており、事前に接続文字列を使用して正常に接続されていると仮定すると、上記はデータベースに対して削除アクションを実行できます。

于 2011-07-20T10:58:19.623 に答える