C# と VB.NET の質問掲示板

ASP.NET、C++/CLI、Java 何でもどうぞ

ログ内検索
  • キーワードを複数指定する場合は 半角スペース で区切ってください。
  • 検索条件は、(AND)=[A かつ B] (OR)=[A または B] となっています。
  • [返信]をクリックすると返信ページへ移動します。
キーワード/ 検索条件 /
検索範囲/ 強調表示/ ON (自動リンクOFF)
結果表示件数/ 記事No検索/ ON
大文字と小文字を区別する

No.10351 の関連記事表示

<< 0 >>
■10351  Insert/Updateでのtrue/falseの設定
□投稿者/ みこ -(2007/11/16(Fri) 01:33:46)

    分類:[C#] 

    2007/11/16(Fri) 01:50:05 編集(投稿者)
    2007/11/16(Fri) 01:42:53 編集(投稿者)


    いつも教えていただきありがとうございます。

    C# VS2005 Access2007(mdb) WindowsXP で開発しています。

    FormでCheckBoxがチェックされた際に、それをDBに保存したいのですがうまくいきません。

    bool Jouken = false;

    if (cbJouken1.Checked == true)
    {
    Jouken = true;
      }

    〜 中略 Connection確立 〜

    try
    {
    cmd = new OleDbCommand("update JoukenTbl set "
    + " sortJouken = " + Jouken + " where Code = " + value1 , conn);

    cmd.ExecuteNonQuery();
    MessageBox.Show("DBを更新しました。", "通知");
    }
    catch (Exception ex)
    {
    MessageBox.Show("条件更新に失敗しました。" + ex.Message.ToString());
    }


    DBではこのJoukenフィールドはYes/No型(True/False)で定義しており、この部分がおかしいのではないかと思っています。

    エラーは「1つ以上の必要なパラメータの値が設定されていません」となります。

    mdbを直接操作して値をいれ、読み出すことはできています。
    読み出すときは
    ds.Tables["JoukenTbl"].Rows[0]["sortJouken"].ToString()
    としています。


    検索等で調べてみたのですがわかりません。
    何卒ご享受ください。
    よろしくお願いします
親記事 /過去ログ23より / 関連記事表示
削除チェック/

■10362  Re[1]: Insert/Updateでのtrue/falseの設定
□投稿者/ 特攻隊長まるるう -(2007/11/16(Fri) 10:52:14)
    No10351 (みこ さん) に返信
    >エラーは「1つ以上の必要なパラメータの値が設定されていません」となります。
    SQL 文に定義されていない文字が見つかったときに良く出るエラーだね。
    フィールド名が全角半角で間違っていたり、綴りを間違えていたり。。。
    とりあえず、実行される直前の SQL 文を出力して、Access とか DB で
    直接実行してみたら?

    >ご享受ください。
    # どうでもいいけど間違ってるよ。
記事No.10351 のレス /過去ログ23より / 関連記事表示
削除チェック/

■10370  Re[1]: Insert/Updateでのtrue/falseの設定
□投稿者/ はつね -(2007/11/16(Fri) 12:54:39)
>
    No10351 (みこ さん) に返信
    >          cmd = new OleDbCommand("update JoukenTbl set "
    >              + " sortJouken = " + Jouken + " where Code = " + value1 , conn);
    
    Joken変数はbool型ですよね。それをUPDATE-SQL文という文字列にするときにそのまま連結してしまっていますが、
    完成したSQL文はどのような文字列になっているか確認してみて下さい。
    
    
    > 何卒ご享受ください。
    
    特攻隊長まるるうさんも書かれていますが「ご享受」も「ご教授」も掲示板で回答をお願いする締めの言葉として使う誤りです。
    
記事No.10351 のレス /過去ログ23より / 関連記事表示
削除チェック/

■10415  Re[2]: Insert/Updateでのtrue/falseの設定
□投稿者/ みこ -(2007/11/16(Fri) 22:35:14)
    アドバイスありがとうございます。

    フィールド名等はタイプミス等ないようコピペしており、AccessにSQL文を張り付けて確認したら更新されていました。
    Bool宣言していたJokenをStringでもつように変更し明示的にSystem.Convert.ToBoolean()でcastしたところ正常に動くようになりました。
    なぜ直接Bool値でだめだったのか根本的な解決にはなっていませんが、当面はこれで動けば問題ありません。


    享受→教示の間違いですね。これも申し訳ありませんでした。
記事No.10351 のレス / END /過去ログ23より / 関連記事表示
削除チェック/



<< 0 >>

パスワード/

- Child Tree -