- - PR -
DataTableの列の順番
1
投稿者 | 投稿内容 | ||||
---|---|---|---|---|---|
|
投稿日時: 2003-07-16 10:06
DataTableからデータをデータを取得するとき、データを入力した順番で
取得できると考えてよいのでしょうか?それとも、DataViewでソートして 取得しないといけないのでしょうか?
実際にやってみると、ちゃんと入力した順番に取れるのですが、 これは保障されている動きなんでしょうか? | ||||
|
投稿日時: 2003-07-16 10:38
ちょっと追加させて下さい。
DataTableが、配列の塊と考えると、並び順は保障されていると考えられますし、 データベースのテーブルと考えると、並び順は保障されていないと考えられます。 それで迷っているわけです。 | ||||
|
投稿日時: 2003-07-17 10:28
書き方を変えて質問をさせてください。
DataTableの配列は、格納順なのでしょうか?それとも一般のデータベースのテーブルと 同じく、行の順番は全く保障されないのでしょうか? 下にコードを揚げさせていただきました。 まず、DataTableを作成して、その中にデータ[0,1,2,3,4]をこの順番で5レコード追加 します。このデータを格納した順番に取得したいと考えているのですが、 <1>DataTableオブジェクトをループさせて取得の方法で取得した場合、下のコードで は必ず、[0,1,2,3,4]の順番でデータは取得できます。 ただ、上記で述べたように行の順が保障されないのであれば、<2>一度、DataViewオブ ジェクトでソートをかけてからループで取得の方法で行う必要が発生するのではないかと 考えております。できれば、やりたくないのです。
#日経BPのプログラミングADO.NETを買って読んでみました。とてもよい本だと思いま #したが、残念ながらこの件に関する記述は見つけられませんでした。ヘルプが分かり #にくい状況でADO.NET関連のドキュメントが少ないのはきつく感じたりします。 すみませんが、アドバイスを頂けたら幸いです。 | ||||
|
投稿日時: 2003-07-17 11:07
[ メッセージ編集済み 編集者: 未記入 編集日時 2007-01-19 21:59 ] | ||||
|
投稿日時: 2003-07-17 12:47
ぜうすさん、こんにちは。
>どう見ても投入したデータをiというインデックスで入れた >順番に取得しているようにしか見えないのですが...。 私にもそうみえるんです。。。 ただ、データベース(Access,SQLServer,Oracle)にレコードを追加しても レコードの順番は特にクラスター化しない限りは保持されないじゃないですか? それと同じ事が、DataTableでも起こりうる?と杞憂?してしまっている訳です。 >回答は、「取得しようとする順番に値は帰ってきます」 なんだかすごく馬鹿らしい事を聞いていた気もするのですが・・・ つまり、DataTableにインデックス1でいれたDataRowは、インデックス0 が削除されない限り、インデックス1のままですよねって、事なんです。 #DataSetをデータベースと同じように考えてしまう事が混乱の元 #だったように思います。 |
1