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

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

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

最初のデータを表示するには?


(過去ログ 6 を表示中)

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

■6251 / inTopicNo.1)  最初のデータを表示するには?
  
□投稿者/ まさ 一等兵(22回)-(2006/09/04(Mon) 15:01:30)

分類:[C#] 


分類:[C#] 

度々すみません。
SQLで読み取ったデータを、BETWEENで単票フォームに表示しようとすると、最後に読み取られたデータのみが表示されます。ヘルプで見たのですが、
BindingContextやmyBindingManagerBaseをどう使えばよいか、ヒントをよろしければお願いします。

private void Form2_Load(object sender, System.EventArgs e)
{
cn.ConnectionString = "Provider=Microsoft.Jet.OLEDB.4.0;"
+ "Data Source=M:\\KENSYUUDB_VB.mdb";
cn.Open();
cmd = new System.Data.OleDb.OleDbCommand(
"SELECT iSyainNo, sSyainNm,iSyainAge FROM SYAIN WHERE iSyainNo BETWEEN " + Form1.No1.Text + " AND " + Form1.No2.Text + " ORDER BY iSyainNo", cn);
dr = cmd.ExecuteReader();
int i = 0;

// 取得した内容をテキストボックスに表示する
while(dr.Read())
{
i++;
this.txtNo.Text = dr.GetInt16(0).ToString();
this.txtNm.Text = dr.GetString(1);
this.txtAge.Text = dr.GetInt16(2).ToString();
}
if (i == 0)
{
MessageBox.Show("該当データがありません");
cn.Close();
this.Close();
return;
}
}

0
引用返信 編集キー/
■6252 / inTopicNo.2)  Re[1]: 最初のデータを表示するには?
□投稿者/ まさ 一等兵(23回)-(2006/09/04(Mon) 15:25:46)

分類:[C#] 

インデントがなってませんでした、申し訳ありません。気をつけます。

0
引用返信 編集キー/
■6253 / inTopicNo.3)  Re[1]: 最初のデータを表示するには?
□投稿者/ επιστημη 曹長(93回)-(2006/09/04(Mon) 15:36:48)

分類:[C#] 

> // 取得した内容をテキストボックスに表示する
> while(dr.Read())
> {
> i++;
> this.txtNo.Text = dr.GetInt16(0).ToString();
> this.txtNm.Text = dr.GetString(1);
> this.txtAge.Text = dr.GetInt16(2).ToString();
/* ここで break すれば最初の一個目が表示されるんちゃいますのん? */
> }



0
引用返信 編集キー/
■6254 / inTopicNo.4)  Re[2]: 最初のデータを表示するには?
□投稿者/ まさ 一等兵(24回)-(2006/09/04(Mon) 15:46:05)

分類:[C#] 

すみません、ありがとうございます。

内容を補足しますと、Form2でのNo1No2の数字内でデータを検索し、
Form1で検索結果を表示します。そして「前へ」「次へ」ボタンを押下することによってBETWEENでの結果が閲覧できる仕組みとなっています。
何か参考になることがありましたら、よろしくお願いします。

0
引用返信 編集キー/
■6256 / inTopicNo.5)  Re[3]: 最初のデータを表示するには?
□投稿者/ bell 二等兵(7回)-(2006/09/04(Mon) 18:23:49)

分類:[C#] 

検索結果を配列に格納してそれを参照するようにすればどうでしょうか?

あと、
>cmd = new System.Data.OleDb.OleDbCommand(
>"SELECT iSyainNo, sSyainNm,iSyainAge FROM SYAIN WHERE iSyainNo BETWEEN " + Form1.No1.Text + " AND " + Form1.No2.Text + " ORDER BY iSyainNo", cn);
TextBoxのTextを生でクエリに使うのは危険ですよ…(´ー`)
#Form1.No1.Text="あああ"; とか…SQLインジェクションとか…

質問の内容も小出しにしないように。最初の書き込みで以下のことを類推できる人なんていませんよ。
>内容を補足しますと、Form2でのNo1No2の数字内でデータを検索し、
>Form1で検索結果を表示します。そして「前へ」「次へ」ボタンを押下することによってBETWEENでの結果が閲覧できる仕組みとなっています。

>private void Form2_Load(object sender, System.EventArgs e)
…Form2のロードイベント!?Σ(´ー`)
検索までForm1でやっちゃって結果の配列をForm2に渡した方が良いような気が…
#って結果の表示はForm1なのね…こんがらがってきた…

0
引用返信 編集キー/
■6257 / inTopicNo.6)  Re[4]: 最初のデータを表示するには?
□投稿者/ まさ 一等兵(26回)-(2006/09/04(Mon) 18:31:46)

分類:[C#] 

すみません、ありがとうございます。
Form1で検索して、内容を表示するのがForm2です。
それぞれのフォーム間にはpublicを使い共有してます。
配列ですか。確かループを元にネストする方法でしたっけ?
間違ってたらお願いします。

0
引用返信 編集キー/
■6259 / inTopicNo.7)  Re[5]: 最初のデータを表示するには?
□投稿者/ まさ 一等兵(27回)-(2006/09/04(Mon) 18:45:53)

分類:[C#] 

忘れてました。
検索内容は、テキストに書かれた数字を元に検索するので
SQL文にそのまま値を割り当てています。

0
引用返信 編集キー/
■6260 / inTopicNo.8)  Re[6]: 最初のデータを表示するには?
□投稿者/ bell 二等兵(8回)-(2006/09/04(Mon) 19:18:10)

分類:[C#] 

>配列ですか。確かループを元にネストする方法でしたっけ?
ネスト?
(´∀`)つhttp://msdn.microsoft.com/library/ja/default.asp?url=/library/ja/csspec/html/vclrfcsharpspec_12.asp

ArrayListかなんかに適当に格納でいいと思います。
格納方法は好みで…。

> 検索内容は、テキストに書かれた数字を元に検索するので
そのテキストボックスに"ああああ"とか打ち込まれた場合です。
妥当性のチェックとかしてあればいいんだけど…


0
引用返信 編集キー/
■6270 / inTopicNo.9)  Re[7]: 最初のデータを表示するには?
□投稿者/ まさ 一等兵(28回)-(2006/09/04(Mon) 23:45:08)

分類:[C#] 

ありがとうございます。
配列を調べてたら、似たようなものでデータアダプタを使った方法もあるみたいですね。構文が似てるのでどちらか配列を使ってカレントレコード操作を検討したいと思います。大変参考になるサイトをありがとうございます。

0
引用返信 編集キー/
■6271 / inTopicNo.10)  Re[8]: 最初のデータを表示するには?
□投稿者/ まさ 一等兵(29回)-(2006/09/04(Mon) 23:59:07)

分類:[C#] 

あとテキストは空白チェックとISNUMERICを割り当ててますので大丈夫です。

0
引用返信 編集キー/
■6289 / inTopicNo.11)  Re[9]: 最初のデータを表示するには?
□投稿者/ まさ 一等兵(30回)-(2006/09/05(Tue) 12:21:06)

分類:[C#] 

ただいま、Allaylistで2次元配列でやろうとしていますが
どれも単次元配列の例しかないのでサンプルがあればお願いします。

0
引用返信 編集キー/
■6291 / inTopicNo.12)  Re[10]: 最初のデータを表示するには?
□投稿者/ 囚人 一等兵(30回)-(2006/09/05(Tue) 12:39:16)

分類:[C#] 

何をしたいのか全く掴めていませんが、ArrayList のそれぞれの項目に ArrayList を入れたらOKです。正確には2次元配列じゃなくてジャグ配列という形になりますが。もっと正確に言うと配列ですらありませんけども。

0
引用返信 編集キー/
■6294 / inTopicNo.13)  Re[9]: 最初のデータを表示するには?
□投稿者/ ぽぴ王子 伍長(47回)-(2006/09/05(Tue) 13:16:39)
ぽぴ王子 さんの Web サイト

分類:[C#] 

こんにちは。

> あとテキストは空白チェックとISNUMERICを割り当ててますので大丈夫です。

IsNumeric って Microsoft.VisualBasic 名前空間の関数ですよね。あまりお勧
めはしませんが…
まぁそれはそれとして、IsNumeric って "1e+2" や "50"(全角)みたいな文
字列でも true を返してきたりしますが、それは大丈夫ですか?
(1e+2 は SQL 通りそうだけど全角は無理そうです)

0
引用返信 編集キー/
■6296 / inTopicNo.14)  Re[10]: 最初のデータを表示するには?
□投稿者/ まさ 一等兵(31回)-(2006/09/05(Tue) 13:38:22)

分類:[C#] 

こんにちは。
ISNUMERICはメソッドのサンプルが置いてましたのでできました。
全角はできましたが、"1e+2"のようなものでは通ります。でも今のところは問題ありません。

>囚人さん
個人としては、

while(dr.Read())

の後にArraylistを放り込んでループさせようとしています。
int i;
string Arraylist array = Array();
while(dr.Read())
{
i++;
this.txtNo.Text = dr.GetInt16(0).ToString();
this.txtNm.Text = dr.GetString(1);
this.txtAge.Text = dr.GetInt16(2).ToString();
array.Add(txtNo.Text)
array.Add(txtNm.Text)
array.Add(txtAge.Text)
}
という感じやってみます。

0
引用返信 編集キー/
■6297 / inTopicNo.15)  Re[11]: 最初のデータを表示するには?
□投稿者/ まさ 一等兵(32回)-(2006/09/05(Tue) 13:39:55)

分類:[C#] 

すみません、new Array → new Arraylist();です。

0
引用返信 編集キー/
■6298 / inTopicNo.16)  Re[12]: 最初のデータを表示するには?
□投稿者/ まさ 一等兵(34回)-(2006/09/05(Tue) 14:42:13)

分類:[C#] 

できました、ありがとうございます。
あとは前後にデータ移動表示させるカレントレコードの大詰めをしたいと思います。これもArrayListを使うことを考えてます。尚、ArrayListはprivateで宣言しました。
while(dr.Read())
{
i++;
this.txtNo.Text = dr.GetInt16(0).ToString();
this.txtNm.Text = dr.GetString(1);
this.txtAge.Text = dr.GetInt16(2).ToString();
array.Add(txtNo.Text);
array.Add(txtNm.Text);
array.Add(txtAge.Text);
}
if (i == 0)
{
MessageBox.Show("該当データがありません");
  cn.Close();
  this.Close();
  return;
}
txtNo.Text = (string)array[0];
txtNm.Text = (string)array[1];
txtAge.Text = (string)array[2];



0
引用返信 編集キー/
■6299 / inTopicNo.17)  Re[13]: 最初のデータを表示するには?
□投稿者/ まさ 一等兵(35回)-(2006/09/05(Tue) 14:42:45)

分類:[C#] 

解決です、すみません。

解決済み
引用返信 編集キー/


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

このトピックに書きこむ

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

管理者用

- Child Tree -