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

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

C# と VB.NET の入門サイト

Re[5]: DB接続 二次元配列


(過去ログ 112 を表示中)

[トピック内 7 記事 (1 - 7 表示)]  << 0 >>

■66266 / inTopicNo.1)  DB接続 二次元配列
  
□投稿者/ ごご (1回)-(2013/04/11(Thu) 21:53:48)

分類:[Java] 

DB接続でデータを取得したいとおもっています
今DBで3×10のデータがはいっており、取得、二次元配列に返してあげている状態です

この例だと3列(TESTNO、KANA、NAME)だと取得できるのですが

TESTNO,KANA の二列取得をしたときにエラーが発生してしまいます
どのように改善すればエラーが発生せず、取得できるようになりますか?

それともこのロジック自体がまずいのでしょうか?
アドバイスお願いします

ソース一部

public String[][] selectExec(String sql) throws SQLException{

Statement smt = con.createStatement();
//ステートメントオブジェクト作成 SQL文を送るために作成
ResultSet aa=smt.executeQuery(sql);
//SQLから要素取得

ArrayList<String> TESTNO = new ArrayList<String>();
//TESTNO用ののArrayList作成
ArrayList<String> NAME = new ArrayList<String>();
//KAME用
ArrayList<String> KANA = new ArrayList<String>();
//KANA用



while(aa.next()){ //Resultsetが最終行になるまで実行
TESTNO.add(aa.getString("TESTNO"));
NAME.add(aa.getString("NAME"));
KANA.add(aa.getString("KANA"));
}

aa.close(); //使い終わったリザルトクローズ
smt.close(); //ステートメントクローズ //オブジェクトの解放



return hairetu(TESTNO,NAME,KANA);

}


public String[][] hairetu(ArrayList T,ArrayList N ,ArrayList K){

String[][]all=new String[3][T.size()];


all[0] = (String[])T.toArray(new String[0]);//配列TSETNOに収納

all[1] = (String[])N.toArray(new String[0]);//配列NAMEに収納

all[2] = (String[])K.toArray(new String[0]);//配列KANAに収納


return all;

よろしくお願いします

引用返信 編集キー/
■66270 / inTopicNo.2)  Re[1]: DB接続 二次元配列
□投稿者/ shu (276回)-(2013/04/12(Fri) 07:35:50)
No66266 (ごご さん) に返信
> TESTNO,KANA の二列取得をしたときにエラーが発生してしまいます
> どのように改善すればエラーが発生せず、取得できるようになりますか?
提示されたコードは3列用のものですので2列のときにどのように記述
されたのか、エラー内容はどんなものか書かれた方がよいです。
引用返信 編集キー/
■66271 / inTopicNo.3)  Re[2]: DB接続 二次元配列
□投稿者/ ゴマ (3回)-(2013/04/12(Fri) 08:59:55)
No66270 (shu さん) に返信
> ■No66266 (ごご さん) に返信
>>TESTNO,KANA の二列取得をしたときにエラーが発生してしまいます
>> どのように改善すればエラーが発生せず、取得できるようになりますか?
> 提示されたコードは3列用のものですので2列のときにどのように記述
> されたのか、エラー内容はどんなものか書かれた方がよいです。

質問者です
NAMEがないので取得失敗してSQLException発生となります・・
よろしくおねがいします

引用返信 編集キー/
■66272 / inTopicNo.4)  Re[3]: DB接続 二次元配列
□投稿者/ COCOE (5回)-(2013/04/12(Fri) 10:43:12)
No66271 (ゴマ さん) に返信
> ■No66270 (shu さん) に返信
>>■No66266 (ごご さん) に返信
> >>TESTNO,KANA の二列取得をしたときにエラーが発生してしまいます
> >> どのように改善すればエラーが発生せず、取得できるようになりますか?
>>提示されたコードは3列用のものですので2列のときにどのように記述
>>されたのか、エラー内容はどんなものか書かれた方がよいです。
>
> 質問者です
> NAMEがないので取得失敗してSQLException発生となります・・
> よろしくおねがいします

質問の意味がいまいちよく分かりませんが・・・SQLExceptionとあるので、
Tableに存在しないNAME列をロジック変更しないでどのようにSQLで取得するか
ということですかね?

であれば、
SELECT TESTNO, KANA, '' AS NAME FROM TABLE
とかでリテラル値を返せば良いのでは?

意味があるのかは疑問ですが・・・
引用返信 編集キー/
■66278 / inTopicNo.5)  Re[3]: DB接続 二次元配列
□投稿者/ shu (277回)-(2013/04/12(Fri) 14:47:49)
No66271 (ゴマ さん) に返信
> ■No66270 (shu さん) に返信
>>■No66266 (ごご さん) に返信
> >>TESTNO,KANA の二列取得をしたときにエラーが発生してしまいます
> >> どのように改善すればエラーが発生せず、取得できるようになりますか?
>>提示されたコードは3列用のものですので2列のときにどのように記述
>>されたのか、エラー内容はどんなものか書かれた方がよいです。
>
> 質問者です
> NAMEがないので取得失敗してSQLException発生となります・・
> よろしくおねがいします
>
渡されるSQL文の列数の話ということですね。
SQL文の内容を編集出来るなら、COCOEさんの言うようにダミー列を追加すればよいかと
思いますが、それならName列を指定しても対して変わらないだろうと思います。
正しいSQL文であればその内容にかかわらず動作させたいということであれば
ResultSetに含まれる項目を確認する必要があると思います。getStringで項目名を渡す
形式のメソッドがあるのだから多分項目一覧を取得するものも用意されているのではないかと思います。

引用返信 編集キー/
■66282 / inTopicNo.6)  Re[4]: DB接続 二次元配列
□投稿者/ ゴマ (4回)-(2013/04/12(Fri) 16:48:49)
No66278 (shu さん) に返信
> ■No66271 (ゴマ さん) に返信
>>■No66270 (shu さん) に返信
> >>■No66266 (ごご さん) に返信
>>>>TESTNO,KANA の二列取得をしたときにエラーが発生してしまいます
>>>> どのように改善すればエラーが発生せず、取得できるようになりますか?
> >>提示されたコードは3列用のものですので2列のときにどのように記述
> >>されたのか、エラー内容はどんなものか書かれた方がよいです。
>>
>>質問者です
>>NAMEがないので取得失敗してSQLException発生となります・・
>>よろしくおねがいします
>>
> 渡されるSQL文の列数の話ということですね。
> SQL文の内容を編集出来るなら、COCOEさんの言うようにダミー列を追加すればよいかと
> 思いますが、それならName列を指定しても対して変わらないだろうと思います。
> 正しいSQL文であればその内容にかかわらず動作させたいということであれば
> ResultSetに含まれる項目を確認する必要があると思います。getStringで項目名を渡す
> 形式のメソッドがあるのだから多分項目一覧を取得するものも用意されているのではないかと思います。
>

参考になりました!!ありがとうございます
引用返信 編集キー/
■66283 / inTopicNo.7)  Re[5]: DB接続 二次元配列
□投稿者/ ゴマ (5回)-(2013/04/12(Fri) 16:49:01)
No66282 (ゴマ さん) に返信
> ■No66278 (shu さん) に返信
>>■No66271 (ゴマ さん) に返信
> >>■No66270 (shu さん) に返信
>>>>■No66266 (ごご さん) に返信
> >>>>TESTNO,KANA の二列取得をしたときにエラーが発生してしまいます
> >>>> どのように改善すればエラーが発生せず、取得できるようになりますか?
>>>>提示されたコードは3列用のものですので2列のときにどのように記述
>>>>されたのか、エラー内容はどんなものか書かれた方がよいです。
> >>
> >>質問者です
> >>NAMEがないので取得失敗してSQLException発生となります・・
> >>よろしくおねがいします
> >>
>>渡されるSQL文の列数の話ということですね。
>>SQL文の内容を編集出来るなら、COCOEさんの言うようにダミー列を追加すればよいかと
>>思いますが、それならName列を指定しても対して変わらないだろうと思います。
>>正しいSQL文であればその内容にかかわらず動作させたいということであれば
>>ResultSetに含まれる項目を確認する必要があると思います。getStringで項目名を渡す
>>形式のメソッドがあるのだから多分項目一覧を取得するものも用意されているのではないかと思います。
>>
>
> 参考になりました!!ありがとうございます
解決済み
引用返信 編集キー/


トピック内ページ移動 / << 0 >>

このトピックに書きこむ

過去ログには書き込み不可

管理者用

- Child Tree -