2

C# でプログラムを作成しましたが、Access データベースのブール値を更新したいと考えています。このブール値は常に に更新されfalseます。私は絶対にすべてを試しましたが、私の価値に変化はありません。助けてください。

これが私のコードです:

[In mail] 列は私のブール値です。Access でこのクエリを試してみましたが、完全に機能します。

        String query = "UPDATE Ontwikkeldossier SET Ontwikkeldossier.[In mail] = @fals WHERE (((Ontwikkeldossier.[OntwikkeldossierID])=@ontwikkeldossierid));";
        using(OleDbConnection conn = new OleDbConnection(connstring))
        {
            conn.Open();
            OleDbCommand cmd = new OleDbCommand(query, conn);
            cmd.Parameters.Add("@fals", OleDbType.Boolean, 1, "[In mail]").Value = false;
            cmd.Parameters.Add("@ontwikkeldossierid", OleDbType.Numeric).Value = Convert.ToInt32(newrow.Cells[0].Value.ToString());
            cmd.ExecuteNonQuery();
        }

前もって感謝します。

4

3 に答える 3

1
updateCmd.Parameters.Add("@3", OleDbType.Boolean).Value = "true";

これは私のために働いた!Access に「はい/いいえ」列があります。更新コマンドは次のとおりです。

OleDbCommand updateCmd = new OleDbCommand("UPDATE email SET server = @1, port = @2, ssl = @3, utilizator = @4, parola = @5, subiect = @6, email = @7 WHERE ID = @8", connection);
于 2013-10-02T13:08:59.087 に答える
0

これは:

cmd.Parameters.Add("@fals", OleDbType.Boolean, 1, "[In mail]").Value = false;

代わりに:

cmd.Parameters.Add("@fals", OleDbType.Boolean).Value = false;  //or zero, since it's an object, the DB might care...

ソースが問題?値を提供している場合、なぜ値のソースが必要なのですか?

もちろん、常にfalse であるため、クエリを変更してパラメーターを完全に削除することもできます。

String query = "UPDATE Ontwikkeldossier SET Ontwikkeldossier.[In mail] = 0 WHERE (((Ontwikkeldossier.[OntwikkeldossierID])=@ontwikkeldossierid));";
于 2013-05-31T12:00:35.083 に答える