□投稿者/ まさ 一等兵(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
|