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

わんくま同盟

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

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


(過去ログ 6 を表示中)
■6305 / )  カレントレコードの移動
□投稿者/ まさ 一等兵(36回)-(2006/09/05(Tue) 18:33:56)

分類:[C#] 


分類:[C#] 

お世話になります。
検索結果後でのカレントレコード表示時、「次へ」ボタン押下時ですが、表示できません。下がそのコードです。

private void btnNext_Click(object sender, System.EventArgs e)//「次へ」ボタン押下
{
i = 0;//OleDBDataReaderのwhile(dr.read())で読み込んだ値を初期化,データの項目は社員番号,名前,年齢
i = i + 3;//ArrayListの3番目の項目(社員番号)を表示,ArrayListはprivate宣言
j = i + 1;//ArrayListの4番目の項目(名前)を表示
k = i + 2;//ArrayListの5番目の項目(年齢)を表示
txtNo.Text = (string)array[i];//社員番号を表示,i,j,kともprivate int宣言
txtNm.Text = (string)array[j];//名前を表示
txtAge.Text = (string)array[k];//年齢を表示
}
あと、検索結果表示です。

while(dr.Read())//アクセスデータ読み込み処理(変数iはレコード件数)
{
i++;
this.txtNo.Text = dr.GetInt16(0).ToString();//SQL文からテキストボックスにキャスト(社員番号)
this.txtNm.Text = dr.GetString(1);//SQL文からテキストボックスにキャスト(名前)
this.txtAge.Text = dr.GetInt16(2).ToString();//SQL文からテキストボックスにキャスト(年齢)
array.Add(txtNo.Text);//ArrayListに項目追加
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];//年齢初期表示
}
で、ボタンを押下すると次の項目のデータが表示されますが、
iの初期表示が0なため、何回押下しても結果は同じです。できれば初期値を取り除きたいところですが、今度は変数iは、Readerの最後に読み込まれた値を保持しているため(4件読み込まれたらi=4)と記憶されたままになるため、できません。
配列を用いてのカレントレコード操作はできるかどうか、よろしくお願いします。あとなぜかインデントができません・・・。


0
返信 編集キー/


管理者用

- Child Tree -