- - PR -
DataSetの次の行
1
投稿者 | 投稿内容 |
---|---|
|
投稿日時: 2005-10-17 11:44
DataSetに格納された値の 任意の列を (例)ID =10 を呼び出し
次へボタンを押すと 次の ID 「11」。。 「12」 のように DataSetの中のDataTableの中の 任意の一行を選び さらにその次の行を選択するのって どうすればいいのでしょうか。 ずっと悩んだのですが、、全然わかりません。 (><) 教えてください。お願いします。 [ メッセージ編集済み 編集者: Yuma 編集日時 2005-10-17 11:46 ] |
|
投稿日時: 2005-10-17 12:23
WinFormあたりにBindしてるならCurrencyManager。
そうじゃなければ、ID=10の行のインデックスをとっておいて、それを元に次に…って感じですね。 |
|
投稿日時: 2005-10-17 14:17
IOでソートして取得し、順番に処理すればいいと思います。
DataRow[] = Datatable.select(where条件, ソート条件) |
|
投稿日時: 2005-10-17 18:39
うちやまさんありがとうございます。
何とか途中まで作ってみたらいい感じにいきました。 ただ 検索の初めの 行番号を指定したくて テーブルリストの中のID=10をしていしてみるのですが 行番号がどうしてもとれません。 教えてくださいお願いします。 TargetRows = TableList.Select(ID=10) |
|
投稿日時: 2005-10-17 20:40
ところで、環境は何でしょうか?
Visual Studioを使用しているならデバックモードで DataSetに値を代入した後にストップしてDataSetを隅々まで 見てみると、答えが出るような気がします。 ちなみに Dataset ,DataTable,DataRowのメンバを調べて見るといいかもしれません。 DataSetのメンバ http://www.microsoft.com/japan/msdn/library/default.asp?url=/japan/msdn/library/ja/cpref/html/frlrfsystemdatadatasetclasstopic.asp DataTableのメンバ http://www.microsoft.com/japan/msdn/library/default.asp?url=/japan/msdn/library/ja/cpref/html/frlrfsystemdatadatatablememberstopic.asp DataRowのメンバ http://www.microsoft.com/japan/msdn/library/default.asp?url=/japan/msdn/library/ja/cpref/html/frlrfsystemdatadatarowmemberstopic.asp 上の場合ですと、取得したDatarowからItemを取得すればいいと思います。 TargetRows.Item(行番号)で行けると思います。 (試してないので、不正確なところがあるかもしれません) 私の場合DataTable内に取得したい物がありましたら [DataTable].Rows(列番号).Item(行番号) と言うような形で取得します。 ちなみに取得した場所がObjectでしたら Dim obj1 as NEW Object obj1=FindControl([DataTable].Rows(列番号).Item(行番号).uniqueid) という形で取得できます 内容外していたらすいません(* _ _) #修正、日本語のメッセージの変更(意味が通じないところがありましたので) 取得したい物がObjectだった場合の方法の追加 [ メッセージ編集済み 編集者: cedar 編集日時 2005-10-17 20:51 ] |
|
投稿日時: 2005-10-18 14:50
Cedarさんありがとうございます。
VisualStudio使用しています。 Row番号を指定したRowの情報でなく Rowの情報から Row番号を引き出したいのですが。。可能でしょうか? デバックで見たところ DataRowのRowID がそのあたいなのですが Privateのため 取得できません。 ご伝授おねがいします。 |
|
投稿日時: 2005-10-18 21:45
ゴメンなさい、一部オオボケやってました
*----------------------------------------* ちなみに取得した場所がObjectでしたら Dim obj1 as NEW Object obj1=FindControl([DataTable].Rows(列番号).Item(行番号).uniqueid) という形で取得できます *-----------------------------------------* これ、datagridから行、列の取得方法とごっちゃにしてました。(ゆえに動きません) これは無視してください。 で、本題ですけど (DataTable)Datasetからdatarowを取得する場合、 DataSetのDataTableに行数を追加したらだめかな? Dim dc as DataColumn dc = new DataColumn dc.AllowDbnull = False dc.Caption = "No" dc.ColumnName="No" [DataTable].columns.add(dc) For i= 0 to [DataTable].Rows.Count -1 [DataTable].Rows(i).Item("No") = i Next [DataTable].AcceptChanges() こうしておけばRow情報取得した時、追加したColumnからRow番号取得できると思います。 (今はこれしか思い浮かばないよう;;) もっといい方法ありましたら、識者の方、ヨロシクお願いします。 #プログラムのレイアウトを変更 [ メッセージ編集済み 編集者: cedar 編集日時 2005-10-18 21:48 ] |
|
投稿日時: 2005-10-19 14:24
Cedarさん ありがとうございます^^
おかげさまで行番号を取得成功しました。 本当にありがとうございます^^// ただ行数を追加しないで DataSet内部でFillするたんびに Row番号みたいなのが振付けられないんですかね? |
1