検索結果
DB
- 全てのカテゴリ
- 全ての質問
- JasperExceptionのエラーログの見方について
Servletでリクエストを受付け、Javabean経由でDBの内容を取得しJSPで表示させようとしていますが、以下例外が発生しJSPがコンパイルできていないようです。エラーログをどう見ればよいかご教示いただけないでしょうか。 2006-08-27 17:14:11 ApplicationDispatcher[/testtomcat] サーブレット jsp のServlet.service()が例外を投げました org.apache.jasper.JasperException: /Sample5.jsp(5,0) at org.apache.jasper.compiler.DefaultErrorHandler.jspError(DefaultErrorHandler.java:39) at org.apache.jasper.compiler.ErrorDispatcher.dispatch(ErrorDispatcher.java:409) at org.apache.jasper.compiler.ErrorDispatcher.jspError(ErrorDispatcher.java:150) at org.apache.jasper.compiler.Generator$GenerateVisitor.visit(Generator.java:1227) at org.apache.jasper.compiler.Node$UseBean.accept(Node.java:1116) ~略~ at org.apache.catalina.core.ApplicationDispatcher.doForward(ApplicationDispatcher.java:409) at org.apache.catalina.core.ApplicationDispatcher.forward(ApplicationDispatcher.java:312) at Sample5.doGet(Sample5.java:23) at javax.servlet.http.HttpServlet.service(HttpServlet.java:689) ~略~
- 締切済み
- Java
- nankurunaisa2006
- 回答数1
- 持続的データベース接続について
はじめまして 現在、phpでMySQLに接続して、テーブルのデータを表示しているのですが、ページが切り替わった時に前のページで使用されていたテンポラリテーブルの内容を再利用したいのですが、セッション管理を維持する方法が、よくわかりません。 php初心者のため、どなたか力を貸してください! 例えば、下記のようなphpからtest.phpにページ移動する際にtestテーブルの内容をtest.phpでselectしたいのですが、セッションを維持するにはどのような記述をすれば、よいのでしょうか? お手数ですが、宜しくお願いします! <?php /* データベース接続 */ $host = "localhost"; if (!$conn = mysql_connect($host, "user", "passwd")){ die("MySQL接続エラー.<br />"); } mysql_select_db("dwhdb", $conn); create temporary table test(name varchar(30),data varchar(30)); $sql = "insert into test(name,data) values("tanaka","xxxxx"); $res = mysql_query($sql,$conn); print("<a href='test.php'>next</a>"); ?>
- エクセルファイルのadoでの編集
下記のようにエクセルのレコード編集をこころみていますが 下記のように氏名に重複があると、重複レコードが一緒に編集されてしまいます。アドバイスをいただけないでしょうか。「加藤」さんのほうは問題なく編集できます。 id,氏名,住所 15,山田太郎,東京都 18,山田太郎,栃木県 20,加藤太郎,岩手県 sCoString = "DBQ=" & Server.MapPath("" & Session("DB") & "") & "; ReadOnly=False;" sCoString = sCoString & "DefaultDir=" & Server.MapPath("./") & ";" sCoString = sCoString & "Driver={Microsoft Excel Driver (*.xls)};" Set cn = Server.CreateObject("ADODB.Connection") cn.Open sCoString sSQL = Session("SR") & " where id = " & Request("key") Set rs = Server.CreateObject("ADODB.Recordset") rs.Open sSQL, cn, 3, 3, 1 For i = 0 to rs.fields.count - 1 'Each Fld in Rs.fields If rs.fields(i).name <> "id" Then Response.write getcgivalue(rs.fields(i).name) & "<BR>" rs(rs.fields(i).name) = getcgivalue(rs.fields(i).name) End if next rs.UpDate function getcgivalue(str) getcgivalue= Request.Form(str) 'POST if getcgivalue="" then getcgivalue= Request.QueryString(str) 'GET end function
- ベストアンサー
- Microsoft ASP
- nakada789
- 回答数1
- ドイツ旅行についてアドバイスお願いします。
7月にハイデルベルク(3泊)、フライブルク(4泊)、シュトゥットガルト(4泊)に行きます。旅行された事のある方でお薦めのお店や街がありましたら、アドバイスいただけますか? また、鉄道で移動するのですが、ジャーマンレイルパスを買うか迷っています。DBのHPから切符代を検索しようといろんな方面からやってみたのですが、表示できません。パソコンのセキュリティーの問題か私のやり方が悪いのか・・その途中でこちらの掲示板を知りました。 ご存知の方がありましたら、教えてもらえますか? 知りたいのはハイデルベルク⇔フライブルク、フライブルク⇔シュトゥットガルト、シュトゥットガルト⇔フランクフルト空港です。 ハイデルベルクからはネッカー川を船で移動・・観光したいと思っています。フライブルクからは、シュトラスブール、コルマールへも足をのばしてみたいと思っています。よろしくお願いいたします。
- ベストアンサー
- その他(海外旅行・情報)
- lotte7
- 回答数3
- BLOBデーターの画像の表示方法を教えてください。
php(4.3)とmysql(4.0)を使って、BLOBに格納した画像を表示させたいです。 テーブル:gazou 画像名:aa.gif | id | images | | ̄ ̄| ̄ ̄ ̄ ̄ ̄ ̄ ̄| ̄ ̄ | 1 | [BLOB-2.9KB] | ↑ PHPMYADMINでデーターを作って、画面にはこのように表示されています。 <html> <head> <meta http-equiv=”Content-Type” content=”text/html; charset=EUC-JP”> </head> <body> <?php $conn = mysql_connect("localhost","user","pass"); mysql_select_db(test); $self = basename($_SERVER['PHP_SELF']); $sql = " SELECT * FROM gazou "; $rst = mysql_query($sql,$conn); while($row=mysql_fetch_array($rst)){ print"<img src='{$self}?id=$row[id]'>"; } ?> </body> </html> 本やネットで自分なりに調べた結果、これで画像が表示されるはず(!?)だと思っているのですが、残念ながら、画像は×になって表示されません。 初歩的な質問ですみませんが、どうすれば画像は表示されるのでしょうか? よろしくお願いします。
- ベストアンサー
- PHP
- mogrin_001
- 回答数4
- 携帯用Web画面のリファーラ値の取得方法
環境 サーバLinux、Apache2.0.52、PHP4.3.9 携帯用Webを作成し、携帯電話からアクセスしてきた時のリンク元をgetenv("http_referer")を使用し情報を取得したいのですが取得できない状態です。尚、PCの場合は取得可能です。 log.html(対象画面) <body> このページへのアクセスが記録 <img border="0" src="http://****/log.php" width="1" height="1"> </body> log.php(記録) <?php require "config.php"; $conn = mysql_connect($sv, $user, $pass) or die("接続エラー"); mysql_select_db($dbname) or die("接続エラー"); // 値をセット $log_date = date("Y-m-d"); $log_time = date("H:i:s"); $log_ip = getenv("remote_addr"); $log_url = getenv("http_referer"); // データの追加 $sql = "INSERT INTO log (" . " log_date, " . " log_time, " . " log_ip, " . " log_url " . ") values (" . "'" . $log_date . "'," . "'" . $log_time . "'," . "'" . $log_ip . "'," . "'" . $log_url . "'" . ")"; mysql_query($sql, $conn); ?> どうかご指導のほど宜しくお願いします。
- XREAにMovable Type3.2を入れたが、パーマリンク・コメント・トラックバックが403と出ます。
XREAの/public_html直下に、mtフォルダを作り、その中にarchives2(複数のブログを作るのに、何個かarchivesフォルダがいると思ったので)とdbフォルダを作りました。そして、mtフォルダと同じ階層にAというフォルダを作り、http://hogehoge.com/A/というブログを作ろうとしました。 ところが、インポートしたエントリーのパーマリンク・コメント・トラックバックが、クリックしても「403 Forbidden」と真っ白の表示になってしまいます。 cgiフォルダの中にmtフォルダを入れて同じ手順で進めると、なぜかそのやり方だと表示されました。 アーカイブのファイル名をできるだけ短くしたいので、階層を浅く設定したいのですが、XREAはcgiフォルダを作ってからmtフォルダをその中に入れないと正しく動かない仕様なのですか? よろしくお願いします。
- 配列の渡し方
お世話になります。 DBからの検索結果を指定した件数で表示するプログラムを作っています。最初のページはうまく表示できるようになったのですが、次のページを表示する際に検索条件が引き継がれずうまく表示できません。検索条件は配列で持っているのですが、配列の中身ごと次のページに引き渡すにはどうしたら良いのでしょうか? ちなみに現在は下記のようなコードで実行しています。 echo " <a href=\"".$_SERVER["PHP_SELF"]."?p=$next&gender=$genderUrl&area=$areaUrl\"> 次のページ</a>"; 上記のコードで言うと、&areaが配列になります。 &genderは単なる数値なのでうまく引き継がれるのですが、&areaはArray()となるだけでうまく引き継がれません。なお、配列の中身は2バイト文字です。 お手数をお掛けしますがよろしくお願いします。
- データリーダーからのデータ読み出し方法(VB)
お世話になってます。 先日データコネクションを質問しその後うまくいっているように見えたのですが、表記でまた躓いています。 コードは Dim cn As New OleDb.OleDbConnection Dim cmd As New OleDb.OleDbCommand Dim dr As OleDb.OleDbDataReader 'コマンドのコネクション設定 cn.ConnectionString = "Provider=Microsoft.Jet.OLEDB.4.0;" & "Data Source=C:\DB\Report.mdb" 'コネクションを開く cn.Open() 'コマンドの定義 cmd.CommandText = "SELECT password FROM T_Staff WHERE Staff_ID = '" & txtUserID.Text & "'" 'データリーダーからのデータの読み出し dr = cmd.ExecuteReader() ************************************************** 最後の行で ExecuteReader: Connection プロパティは初期化されていません。 と言うエラーメッセージが出ます。 少し検索してみましたがよくわかりません。 これって結局接続できていないのでしょうか? 初期化されていなというのはどういう状態のことなんでしょう? よろしくお願いいたします。
- ベストアンサー
- Visual Basic
- danchor
- 回答数1
- グラフの作成
エクセル表は色んなものを作ってきましたが、それに付随するグラフを作りたいのですが、中々思うようにできません。 分類A 分類B 値 A AA 10 A AA 20 A AB 10 A AC 10 A AB 10 B BA 10 B BC 10 B BD 5 C CA 10 C CA 20 C CB 10 C CC 10 D DA 5 D DA 3 D DB 2 と言うエクセル表を分類AのAからDまでの4分割の合計値の円グラフと、分類Bの12分割の合計の円グラフを書きたいのですが・・・ このエクセル表からはグラフは書けませんか? 一度分類ごとに合計を出したエクセル表からはできるのですが、元の表からグラフにできませんか? 何せPCに疎く、独学でやってますので限界があります。 よろしく御指導ください。
- メモリーの増設について:東芝DynaBook
ハードウェア初心者です。 3年前に買ったノートPCなのですが、ウィルスソフトを入れて たせいか分からないのですが、動作が非常に遅く感じるので メモリーの増設を検討中です。取説には「タイプY:PC133規格で PAME256Y,PAME512」が該当するとの事。そこで・・・ (1)「PC133規格、PAME256Y」とは何なのでしょうか?商品名だと したらメーカーは特に拘らなくて良いのでしょうか? (2)増設を自分でやりたいのですが、何か特に注意する事は? (3)画像、音楽ファイルなどもPC内に結構ある(ファイル数約25万) という事も動作の鈍化に影響しているのでしょうか? 何かご存知の方、ご経験のある方、ご投稿宜しくお願いします。 PCのスペック↓ http://dynabook.com/pc/catalog/search/user/cgi-bin/disp.cgi?pid=PAT5512CME&dir=DB
- DataSetの更新時のエラーについて。
VB.NETです。 SqlDataAdapterからDataSetを生成して使用しています。 DataGridに表示させて、選択したレコードを削除させるようにしています。 そのとき、DataGrid上からは削除されるのですが、(DBは未更新) 更新ボタンを押したときに更新させていますが、このときにエラーが発生します。↓ 'System.InvalidOperationException' のハンドルされていない例外が system.data.dll で発生しました。 追加情報 : 更新には、削除された行を含む DataRow コレクションが渡されたとき、有効な DeleteCommand が必要です。 他のページでも同じ処理でうまく動いているのでここだけうまく動かないという理由がわかりません。 更新ボタンのところの処理は SqlDataAdapter12.Update(Ds12, "T製品") DataGrid1.Update() だけなのですが、なにが足りないでしょうか? 追加のときはなんら問題ないのですが・・・。
- ベストアンサー
- Visual Basic
- usui323
- 回答数1
- XMLパースエラー
現在の状況を以下に記述します。 [言語] PHP(4.4.1) [DB] MySQL(4.0.25) [WEBサーバ] Apache(1.3.34) [不具合状況] 「→」という文字列を含めて、RSSフィードを作成したところ、その文字列が文字化けしてしまい、結果としてXMLパースエラーが発生してしまいました。 [RSSフィード作成方法] デフォルトのエンコード(SJIS)からUTF-8に変換してRSSフィードを作成しています。 [RSSフィードURL] <http://www.covata5.net/rss/dbusr_article.rdf> [ブログURL] <http://www.covata5.net/usr/nyun/> [知りたい事] SJISからUTF-8に文字コードを変換する場合「→」という文字列は上手く変換できるのか、できないのかを知りたいです。 できるのであればどのようにすればいいのか分かる方ご教授ください。 ※情報が少ないとは思いますが、宜しくお願いいたします。
- ネット上の無料サーバースペースのMySQLにコネクトできない
無料サーバーで、PHP対応だとのことで サーバー管理画面でphpMyAdminでMySQLデータベースと管理者を設定し、テーブルも作ってみました。 ですが、.phpでプログラムを書いてサーバー上において実行させても以下のようなメッセージが出て、検索も操作もできていないようです。 どうすれば、きちんとコネクトして使えるようになるでしょうか。 Warning: mysql_connect(): Lost connection to MySQL server during query in /virtual/site/ホームページアドレス/htdocs/select_table.php on line 3 Warning: mysql_select_db(): supplied argument is not a valid MySQL-Link resource in /virtual/site/ホームページアドレス/htdocs/select_table.php on line 4 Warning: mysql_query(): supplied argument is not a valid MySQL-Link resource in /virtual/site/ホームページアドレス/htdocs/select_table.php on line 5 Warning: mysql_fetch_array(): supplied argument is not a valid MySQL result resource in /virtual/site/ホームページアドレス/htdocs/select_table.php on line 6
- Sパラメータについて
(1)Sapraのタッチストーン標記にはRI,MA,DBと標記方法がいくつかありますが、よく見かける下記式のS11,S12に用いられるものはどの表記方法のときなのでしょうか?(MAのときのmagnitudeでしょうか?) b1=S11*a1+S12*a2 (2)Sparaのタッチストーン標記されている数値と正規化との関係はあるのでしょうか? (3)下記URLに「S11は反射係数」と書いていますが、 間違いではないでしょうか? http://www1.sphere.ne.jp/i-lab/ilab/tr/tr_s/tr_s7.htm 反射係数は周波数に依存するものではないですよね。 Spara(S11)は周波数に依存しましよね? いろいろ調べましたがなかなか資料が少ないです。 解る範囲で結構です。 どうぞお詳しい方、宜しくお願い致します。
- $pas=md5($pas); パスワード結果
3枚のファイルの最初のファイル 「qz_add.php」 <!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01Transitional//EN"> <html> <head> <META http-equiv="Content-Type" content="text/html; charset=utf-8"> <META http-equiv="Content-Style-Type" content="text/css"> <link rel="stylesheet" href="mystyle2.css" type="text/css" /> <title>東小掲示板参加メニュウ</title> </head> <body> 東小掲示板会員参加メニュウ<br /><br /> <form method="post"action="qz_add_check.php"> ニックネームを入力してください。<br> <input type="text"name="id"style=width:200px"><br /> パスワードを入力してください。<br> <input type="password"name="pas"style=width:100px"><br /> パスワードをもう一度入力してください。<br> <input type="password"name="pas2"style=width:100px"><br /> 名前を入力してください。<br> <input type="text"name="nam"style=width:200px"><br /> <input type="button"onclick="history.back()"value="戻る"> <input type="submit" value="OK"></p </form> </body> </html> 3枚のファイルの2枚目のファイル 「qz_add_check.php」 <!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01Transitional//EN"> <html> <head> <META http-equiv="Content-Type" content="text/html; charset=UTF-8"> <META http-equiv="Content-Style-Type" content="text/css"> <link rel="stylesheet" href="mystyle2.css" type="text/css" /> <title>入力チック</title> </head> <body> <?php $id=$_POST['id']; $pas=$_POST['pas']; $pas2=$_POST['pas2']; $nam=$_POST['nam']; $id=htmlspecialchars($id); $pas=htmlspecialchars($pas); $pas2=htmlspecialchars($pas2); $nam=htmlspecialchars($nam); if($id=='') { print 'ニックネームが入力されていません。<br />'; } else { print'ニックネーム名:'; print $id; print'<br />'; } If($pas=='') { print'パスワードが入力されていません。<br />'; } if($pas!=$pas2) { print 'パスワードが一致しません。<br />'; } if($nam=='') { print 'お名前が入力されていません。<br />'; } else { print'お名前:'; print $nam; print'<br />'; } if($id==''||$pas==''||$pas=$pas2==''||$nam=='') //if($staff_name==''||$staff_pass==''||$staff_pass!=$staff_pass2) { print'<form>'; print'<input type="button"onclick="history.back()"value="戻る">'; print'</form>'; } else { $pas=md5($pas); print'<form method="post"action="qz_add_done.php">'; print'<input type="hidden"name="id"value="'.$id.'">'; print'<input type="hidden"name="pas"value="'.$pas.'">'; print'<input type="hidden"name="nam"value="'.$nam.'">'; print'<br/>'; print'<input type="button"onclick="history.back()"value="戻る">'; print'<input type="submit" value="OK">'; print'</form>'; } ?> </body> </html> 3枚のファイルの最後のファイル DB接続 「qz_add_done.php」 <!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01Transitional//EN"> <html> <head> <META http-equiv="Content-Type" content="text/html; charset=UTF-8"> <META http-equiv="Content-Style-Type" content="text/css"> <link rel="stylesheet" href="mystyle2.css" type="text/css" /> <title>DBに追加</title> </head> <body> <?php try { $id=$_POST['id']; $pas=$_POST['pas']; $nam=$_POST['nam']; $id=htmlspecialchars($id); $pas=htmlspecialchars($pas); $nam=htmlspecialchars($nam); $dsn = 'mysql:dbname=db;host=localhost'; $user = 'root'; $password = '0200abcd'; $dbh = new PDO($dsn, $user, $password); $dbh->query('SET NAMES utf8'); $sql ='INSERT INTO table2 (id,pas,nam) VALUES (?,?,?)'; //$sql ='INSERT INTO table2 (id,md5(pass),nam) VALUES (?,?,?)'; $stmt = $dbh->prepare($sql); $data[] = $id; $data[] = $pas; $data[] = $nam; $stmt->execute($data); $dbh = null; print $id; print'さんを追加しました。<br />'; } catch(Exception $e) { print'只今障害により大変ご迷惑をおかけしています。'; exit(); } ?> <a href="gz_logon.php">戻る</a> </body> </html> mysqlのパスワードの値が32の文字列が表示されます。d41d8cd98f00b204e9800998ecf8427e ID番号と名前を変えても上記のパスワードが表示されます。どこにミスがあるか、教えて頂ければ幸いです。
- SAStrutsでActionからJSPに値を渡す
はじめまして、当方駆け出しのプログラマです。 JAVA歴2ヶ月で勉強(研修)させてもらっています。 初歩的な質問かもしれませんが、ご返答いただけると幸いです。 勉強して一ヶ月ほどでJSPサーブレットを使った簡単なスケジュールを表示するプログラムを作りました。環境はEclipse(pleiades3.5)+tomcat6.0+jre1.6+mysql5.5.10です。 これをフレームワークに準拠したつくりに移行してくれと上司の方に言われました。 しかし、私が作ったものは、スケジュール表示で日付で参照し、そこからデータベースからとったスケジュールの日付と合致するものがある場合リンクを表示するというものでした。 このためタグライブラリのC:each等の繰り返しは使えないため、スクリプトレットで変数として値を持ってこないと動作しない状態です。 Stringやint型はrequest.getAttributeでもってこれるのはわかったのですがentityに入っている値を持ってくることが出来ずNullになってしまいます。 ソースはこちらになります。 書き出しで説明すると。 DB接続→値を持ってきてentityにセットする→これらをarrayListに格納→arrayListの中身を日付順にソート→entityの配列に収納する→jspに受け渡し→表示できない。 という状況です。 ScheduleMainはentityでSchedule_mainはDBのテーブルです。arrayの部分で日付順になるようにソートをかけてあります。これは理由があってsql内でソートしていません。 scheduleitemsはScheduleItemsというentityで複数個スケジュールを保管できるように配列をゲッターセッター設置してあります。 Action.java for(int i=0 ; i<schedulemain.size();i++){ ScheduleMain schemain = schedulemain.get(i); int ID = schemain.getId(); String place = schemain.getPlace(); String schedule = schemain.getSchedule(); int empId = schemain.getEmpId(); int category = schemain.getCategory(); int scheCategory = schemain.getScheCategory(); Date scheduleDay = schemain.getScheduleDay(); Time endtime = schemain.getEndtime(); Time starttime = schemain.getStarttime(); schedule_main.setCategory(category); schedule_main.setEmpId(empId); schedule_main.setEndtime(endtime); schedule_main.setId(ID); schedule_main.setPlace(place); schedule_main.setScheCategory(scheCategory); schedule_main.setSchedule(schedule); schedule_main.setScheduleDay(scheduleDay); schedule_main.setStarttime(starttime); array.add(schedule_main); } ScheduleMain[] itembean = (ScheduleMain[])array.toArray(new ScheduleMain[array.size()]); Comparator asc = new Comparator() { public int compare(Object obj0, Object obj1) { String nameKana0 = ((ScheduleMain) obj0).getScheduleDay().toString(); String nameKana1 = ((ScheduleMain) obj1).getScheduleDay().toString(); int ret = 0; // カナの昇順 if ((ret = nameKana0.compareTo(nameKana1)) == 0) { // カナが同じ場合はIDの昇順 String id0 = ((ScheduleMain) obj0).getStarttime().toString().substring(0,5); String id1 = ((ScheduleMain) obj1).getStarttime().toString().substring(0,5); ret = id0.compareTo(id1); } return ret; } }; scheduleitems.setItembean(itembean); jsp側ですが。 ScheduleItems scheduleitems = (ScheduleItems)request.getAttribute("Scheduleitems"); で宣言をし、out.printやlengthをとってもnullExeprionになってしまいます。 enteity部分 ScheduleItems.java package schedule.entity; import javax.persistence.Entity; import javax.persistence.Table; @Entity @Table(name="schedule_main") public class ScheduleItems { public ScheduleMain[] itembean = null; public ScheduleItems(){ } public ScheduleMain[] getItembean() { return itembean; } public void setItembean(ScheduleMain[] itembean) { this.itembean = itembean; } } ScheduleMainは自動生成されるDoltengでDBから生成しました。 entityではだめなのかと思いDtoでも試しましたがやはり同じ症状になってしまいます。 この部分が解決されるだけでかなりの進捗が期待されるのでどうかよろしくお願い致します。 長文失礼しました。よろしくお願い致します。
- ベストアンサー
- Java
- omegasword
- 回答数2
- vb txtファイル名に年月日、日時を追加する方法
こんにちは、現在visual studio 2013 で勉強をしている初心者です。現在CSVデータの取り込みの際、重複した値をtxtファイルに保存しているのですがそのファイル名に「年月日、日時」を追加したいのですがやり方がわかりません。教えていただきたいです。 重複リスト.txt 2019/7/26 10:00みたいなのをイメージしているのですが・・・ 以下にソースを貼っておきます。 Private Sub Button1_Click_1(sender As Object, e As EventArgs) Handles Button_torikomi.Click 'OpenFileDialogクラスのインスタンスを作成 Dim ofd As New OpenFileDialog() Dim strSQL As String = Nothing Dim DT As New DataTable Dim clsdb As CLS_db 'クラスの呼び出し SQL接続 clsdb = New CLS_db 'はじめに表示されるフォルダを指定する ofd.InitialDirectory = "C:\" '[ファイルの種類]に表示される選択肢を指定する ofd.Filter = "CSVファイル(*.csv;*.csv)|*.csv;*.csv|すべてのファイル(*.*)|*.*" '[ファイルの種類]ではじめに選択されるものを指定する '2番目の「すべてのファイル」が選択されているようにする ofd.FilterIndex = 0 'タイトルを設定する ofd.Title = "開くファイルを選択してください" 'ダイアログボックスを閉じる前に現在のディレクトリを復元するようにする ofd.RestoreDirectory = True ofd.CheckFileExists = True ofd.CheckPathExists = True 'ダイアログを表示する If ofd.ShowDialog() = DialogResult.OK Then 'OKボタンがクリックされたとき、選択されたファイル名を表示する Console.WriteLine(ofd.FileName) Dim sr As New System.IO.StreamReader(ofd.FileName, _ System.Text.Encoding.GetEncoding("shift_jis")) '内容を一行ずつ読み込む Dim sw As String = sr.ReadLine() While sr.Peek() > -1 Dim s As String = sr.ReadLine() Dim parts As String() parts = Split(s, ",") strSQL = "SELECT カナ氏 FROM 従業員登録 WHERE 従業員コード = " & parts(0) & "" '重複処理 DT = clsdb.GetDataTable(strSQL) If DT.Rows.Count > 0 Then 'Shift JISで書き込む Dim swt As New System.IO.StreamWriter("C:\test\重複リスト.txt", _ True, _ System.Text.Encoding.GetEncoding("shift_jis")) '重複リスト.txtの内容を書き込む() swt.Write(parts(0)) swt.Write(","c) swt.Write(parts(1)) swt.Write(","c) swt.Write(parts(2)) swt.Write(","c) swt.Write(parts(3)) swt.Write(","c) swt.Write(parts(4)) swt.Write(","c) swt.Write(parts(5)) swt.Write(","c) swt.Write(parts(6)) swt.Write(","c) swt.Write(parts(7)) swt.Write(","c) swt.Write(parts(8)) swt.Write(","c) swt.WriteLine(parts(9)) '閉じる() swt.Close() Else strSQL = "INSERT INTO 従業員登録(従業員コード,カナ氏,カナ名,氏,名,性別,生年月日,入社日,部署,PASSWORD) VALUES ( '" & parts(0) & "','" & parts(1) & "','" & parts(2) & "','" & parts(3) & "','" & parts(4) & "','" & parts(5) & "','" & parts(6) & "','" & parts(7) & "', '" & parts(8) & "','" & parts(9) & "')" Try clsdb.Execute(strSQL) Catch ex As Exception MessageBox.Show(ex.Message) End Try End If MsgBox(strSQL) End While '閉じる sr.Close() If DT.Rows.Count > 0 Then MsgBox("従業員コードが同じです", MessageBoxIcon.Warning, "重複エラー") Else MsgBox("追加しました。", MessageBoxIcon.Asterisk, "追加") End If End If '更新テーブル再読み込み 'SQL構文を指定します。 strSQL = "select * from 従業員登録" '即反映 Try clsdb = New CLS_db DT = clsdb.GetDataTable(strSQL) 'データグリッドビューのデータソースを設定 Me.DataGridView1.DataSource = DT Catch ex As Exception MessageBox.Show(ex.Message) End Try DataGridView1.ReadOnly = True '元に戻す Me.Cursor = Cursors.Default End Sub End Class
- ベストアンサー
- Visual Basic
- Yuri0210
- 回答数2
- チェックボックスの値のデータベースへの挿入方法
すみませんが、どなたか教えていただけないでしょうか。 ブラウザ上に2つチェックボックスがあり、チェックしたら1、チェックしなかったら0(または空白)をMySQLのデータベースのテーブルに挿入したいと思っています。 これを最初のブラウザのページをhtml、チェック後にそれを処理してデータベースとの処理をするのをphpで書いています。 また、データベースは下記のように作成し、testtbテーブルはt1, t2という名の2つのcolumnで出来ています。 ・MySQL データベース名:testdb ・MySQL テーブル名:testtb 下記のようにプログラムを書いたところ、無事挿入までは出来たのですが、MySQLでテーブルの中身を確認したところ毎回2つ分rowに値が挿入されていたり、2つ目のチェックボックスがチェックされているのにも関わらずt1に値が入ってしまったりしています...。 期待している動作は、下記のようになります。 ・チェックボックス1だけにチェックが入った場合 >t1に1が入り、t2は0(または空欄)が入る ・チェックボックス2だけにチェックが入った場合 >t2に1が入り、t1は0(または空欄)が入る ・チェックボックス1と2の両方にチェックが入った場合 >t1とt2両方に1が入る ・チェックボックス1と2の両方ともチェックが入らなかった場合 >t1とt2両方とも0(または空欄)が入る チェックボックスの2次元配列(?)を理解出来ていないのが一因かと思われるのですが、どう書けば良いか教えていただけませんでしょうか。 宜しくお願いします。 --------------------- <!DOCTYPE html> <html> <head> <title>test</title> </head> <body> <meta http-equiv=Content-Type content="text/html; charset=UTF-8"> <form method = "POST" action = "test.php"> A   <input type="checkbox" name="t[]" value="1"><br> B   <input type="checkbox" name="t[]" value="1" checked><br> <input type = "submit" name = "btn1" value = "send"> </form> </body> </html> ----------ここまでがhtml ----------ここからがphp <!DOCTYPE html> <html> <head> <title>test</title> </head> <body> <meta http-equiv=Content-Type content="text/html; charset=UTF-8"> <?php $idata1 = $_POST["t"]; print $idata1; $link = mysql_connect('localhost', 'root', 'パスワード'); if (!$link){ die('接続失敗です。'.mysql_error()); } print('<p>接続に成功しました。</p>'); $db_selected = mysql_select_db('testdb', $link); if (!$db_selected){ die('データベース選択失敗です。'.mysql_error()); } print('<o>testdbデータベースを選択しました。</p>'); mysql_set_charset('utf8'); $result = mysql_query('SELECT t1, t2 FROM testtb'); if (!$result){ die('SELECTクエリーが失敗しました。'.mysql_error()); } print('<p>テーブル選択成功</p>'); while ($row = mysql_fetch_assoc($result)){ print('<p>'); print('t[]='.$row['t[]']); print('</p>'); } print('<p>データを追加します。</p>'); $sql = 'INSERT INTO testtb (t1, t2) VALUES ("'.$idata1.'")'; $result_flag = mysql_query($sql); if (!$result_flag){ die('INSERTクエリーが失敗しました。'.mysql_error()); } print('<p>追加後のデータを取得します。</p>'); $result = mysql_query('SELECT * FROM testtb'); if (!$result) { die('SELECTクエリーが失敗しました。'.mysql_error()); } while ($row = mysql_fetch_assoc($result)){ print('<p>'); print('t[]='.$row['t[]']); print('</p>'); } $close_flag = mysql_close($link); if ($close_flag) { print('<p>切断に成功しました。</p>'); } ?> </body> </html>
- JSPからServletに、テーブルに格納された値を渡したい
JSPに日付、資産名、社員番号、社員名、備考とボタンを各行に配置したテーブルがあります。 ここから資産名をServletに渡して、それを基に別のJSPに別のテーブルを表示させるコードを考えています。 現状のコードは以下(抜き出し) 【JSP】 <table> <tr> <td>状態</td> <td>社員番号</td> <td>社員名</td> <td>機種</td> <td>備考</td> <td></td> </tr> <% List list = (List)request.getAttribute("list"); int Cnt; for(Cnt=0; Cnt<list.size(); Cnt++){ Account account = (Account)list.get(Cnt); %> <tr> <!-- Beansに格納したSQLの実行結果を呼び出す --> <td><%=account.getLendingReturnFlag() %></td> <td><%=account.getEmployeeCode() %></td> <td><%=account.getEmployeeName() %></td> <td><%=account.getMaker() %> <%=account.getMachineType() %></td> <td><%=account.getRemarks() %></td> <td> <!-- 資産NoをServletに渡すために、hiddenに"No_カウンタ"という名前をつけて格納 --> <input type="hidden" name="No_" + "<%=Cnt%>" value="<%=account.getAssetNo()%>"> <!-- 資産Noと同じ行のボタンを判別するため、"id_カウンタ"という名前をつけて資産Noを格納 --> <!-- 現状ではボタンに資産Noが表示されていますが、これは後から「資産詳細」に直す予定 --> <input id="<%=Cnt%>" name="id_" + "<%=Cnt%>" type="submit" value="<%=account.getAssetNo()%>"> </td> </tr> <% } %> </table> <!-- 現在表示している一覧が何行あるかを"Cnt_sum"という名前をつけて格納 --> <input type="hidden" name="Cnt_sum" value="<%=Cnt%>"> </form> <FORM> <input type="button" value="戻る" onClick="history.back()"></div> </FORM> 【Servlet】 package history; import java.io.*; import java.sql.*; import javax.servlet.*; import javax.servlet.http.*; import db.*; import java.util.*; public class HistoryDetailServ extends HttpServlet { private static final long serialVersionUID = 444896L; public void doPost(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException { //エンコードを指定 response.setContentType("text/html; charset=Windows-31J"); request.setCharacterEncoding("Windows-31J"); //前画面でテーブルが何行だったかを呼び出す int Cnt_sum = Integer.parseInt(request.getParameter("Cnt_sum")); //上記のテストコード System.out.println(Cnt_sum); String pc_id = ""; String No = ""; String id = ""; //テーブルの行数分、繰り返しを行うfor文 for(int Cnt=1; Cnt<=Cnt_sum; Cnt++){ //"No_カウンタ"という名前で格納されている値を呼び出す(資産No) No = request.getParameter("No_" + Cnt); for(int Cnt_2=1; Cnt_2<=Cnt_sum; Cnt_2++){ //"id_カウンタ"という名前で格納されている値を呼び出す(資産No) id = request.getParameter("id_" + Cnt_2); //上記のテストコード System.out.println(No); System.out.println(id); //上記2つの値が等しいときに処理を行うif文 if(No==id){ //SQLの取得に使用する変数に、Noを格納 pc_id = No; //上記のテストコード System.out.println(pc_id); } } } //DB接続 ServletContext sc = getServletContext(); DbControl db_Con = new DbControl(sc); try{ となっています。 テスト用のコードの実行結果(コンソールに出力しました)を見ると、テーブルが何行だったかを示すCnt_sumは正しくServletに渡っているようですが、残る3つはnullが返ってきてしまいました。 for文のあたりからが怪しいのは判るのですが、値を取得するコードに間違いがあるのか、for文そのものに問題があるのか・・・など考えたまま数時間経っても解決しなかったので質問させていただきます。