- - PR -
データベースにチェックボックスの情報の追加の仕方
1|2|3|4
次のページへ»
投稿者 | 投稿内容 |
---|---|
|
投稿日時: 2004-02-25 14:26
データベースにチェックボックスの内容を追加(Add)
したいのですができません。テキストの部分は問題なく できますが、チェックボックスを追加すると、下のような エラーが出ます。 Syntax error in INSERT INTO statement Source Error: objCommand.ExecuteNonQuery(); Adminとなっている部分がチェックボックスを使用しています。 どこを直せばよいのか教えてください。 よろしくお願いします。 コード(ボタンを押すとUserテーブルにAddされる) private void btnAdd_Click(object sender, System.EventArgs e) { String strConnect = "Provider=Microsoft.Jet.OLEDB.4.0;Data Source = " + Request.PhysicalApplicationPath + "TRCIDB.mdb;Mode=ReadWrite|Share Deny None;"; String select = "SELECT UIdNum, Usename, Name, usrpwd, Admin FROM User"; //Create a connection OleDbConnection cn = new OleDbConnection(strConnect); cn.Open(); //create a new OleDbCommand System.Data.OleDb.OleDbCommand objCommand = new OleDbCommand( select, new OleDbConnection( strConnect )); objCommand.Connection.Open(); //strings to store the text fields string username = this.txtUsername.Text.Trim(); string name = this.txtName.Text.Trim(); string password = this.txtPassword.Text.Trim(); ***ここの部分を間違えていると思うのですが*** bool isAdmin = this.chkbxAdmin.Checked; //adds the new information into the database if ( username != "" && name != "" && password != "") { objCommand.CommandText = "INSERT INTO User( Username, Name, usrpwd, Admin ) values( '" + username + "','" + name + "','" + password + "','" + isAdmin + "')"; objCommand.ExecuteNonQuery(); txtUsername.Text = ""; txtName.Text = ""; txtPassword.Text = ""; chkbxAdmin.Checked = false; this.Label5.Text = "Software added properly"; } else { this.Label5.Text = "Software not added properly"; } objCommand.Connection.Close(); |
|
投稿日時: 2004-02-25 14:48
「Admin」項目の型と登録しようとしている型が一致してないんじゃ・・・?
_________________ まゆりん @ わんくま同盟 Blog る。 |
|
投稿日時: 2004-02-25 14:53
返答ありがとうございます。
Admin項目の型というのはテーブルに登録 してある型ってことですよね? AdminはYes/Noにしてあるのですが、Boolでは ないのですか? |
|
投稿日時: 2004-02-25 15:27
えーと、もしかしてAccessですか?
Accessはよく分からないですが、 チェックがついている=Yes か True か On か -1 チェックがついてない=No か False か Off か 0 で試してみては如何でしょうか。 大した回答できなくてごめんなさい。 _________________ まゆりん @ わんくま同盟 Blog る。 |
|
投稿日時: 2004-02-25 15:35
すみません、きちんと書かなくて。
そうです、Accessを使っています。 <チェックがついている=Yes か True か On か -1 <チェックがついてない=No か False か Off か 0 これは具体的にはどうすればよいのでしょうか? bool isAdmin = true; という感じでしょうか? Webページ上でチェックボックスがチェックされた時に Trueを返したいです。 ほんと質問ばかりですみません。 |
|
投稿日時: 2004-02-25 15:51
いえいえ、こちらこそ舌足らずですみません。
で、今ふとコードを見て思ったんですが、 もしかしてシングルコーテーションで囲んでるからじゃないんですかね? #文字列と判断されてるかも。見逃してた 一度外して実行してみてください。 こんなかんじ。 objCommand.CommandText = "INSERT INTO User( Username, Name, usrpwd, Admin ) values( '" + username + "','" + name + "','" + password + "'," + isAdmin + ")"; #とりあえずさっき言ってたことは忘れてください(笑)。 ※コード追加、説明追加 _________________ まゆりん@人生Try and Error!(笑) [ メッセージ編集済み 編集者: まゆりん 編集日時 2004-02-25 15:59 ] |
|
投稿日時: 2004-02-25 16:03
シングルコーテーション外してみました。
が、しかし同じエラーが出てしまいました(悲)。 テキストボックスとチェックボックスに値を入れ Addボタンを押すとエラーは下のような感じです。 Line86のところが赤くなってます。 チェックボックスのせいではないのかなと思ったりもしてきました・・・。 Syntax error in INSERT INTO statement. Description: An unhandled exception occurred during the execution of the current web request. Please review the stack trace for more information about the error and where it originated in the code. Exception Details: System.Data.OleDb.OleDbException: Syntax error in INSERT INTO statement. Source Error: Line 84: { Line 85: objCommand.CommandText = "INSERT INTO User( Username, Name, usrpwd, Admin ) values(" + username + "," + name + "," + password + "," + isAdmin + ")"; Line 86: objCommand.ExecuteNonQuery(); Line 87: Line 88: txtUsername.Text = ""; |
|
投稿日時: 2004-02-25 16:08
えっと、「isAdmin」のところだけでいいです<シングルコーテーション
全部外しちゃったんですね・・・^^; 慌ててさっき追加したんですが間に合わなかったか・・・。 _________________ まゆりん @ わんくま同盟 Blog る。 |
1|2|3|4
次のページへ»