- 題名: Datasetについて
- 日時: 2005/03/25 20:58:28
- ID: 10107
- この記事の返信元:
- (なし)
- この記事への返信:
- [10114] Re[1]: Datasetについて2005/03/26 20:51:36
- ツリーを表示
( 質問者の、 > SQL文を使用し探し出したり更新したりすることはできますか? より下が意味不明なので、何をしたいかよく分かりませんが・・・ ) DataSet自体には直接検索する機能はありませんね。 (既に読み込んだデータ中から)条件で絞り込んで取得するには、 所属するDataTableや、更にその下に属する行コレクションであるRowsで行います。 ようは、ひとつのテーブル(DatatableかDatatable.Rows行コレクションで。)での処理となります。 (=SQLで対象を指定するFROM句が固定されることになります。「dt_A」とか。) ●前者は、Selectメソッドです。 こちらでは、任意の検索を行える上、行の状態で絞り込んだり、ソートを指定したりできます。 SQLのSELECTの一部機能、といった感じですね。行の配列が返ってきます。 一番引数の多い、高機能なオーバーロードでは、例えば以下のようにします。 dim dr() as datarow=dt_a.select("id>='000010' and c='japan'","registdate desc",DataViewRowState.CurrentRows) 行状態で絞り込める機能はかなり有用です。 ms-help://MS.VSCC.2003/MS.MSDNQTR.2003FEB.1041/cpref/html/frlrfsystemdatadatatableclassselecttopic.htm ●後者は、Datatable内の行コレクションであるRowsからの、Findメソッドで、1行だけが返ってきます。 キーが一致するものを検索することができます。 ms-help://MS.VSCC.2003/MS.MSDNQTR.2003FEB.1041/cpref/html/frlrfsystemdatadatarowcollectionclassfindtopic.htm (何か理由があれば別ですが、普通、前者のSelectメソッドを使うことになると思います。) なお、更新に関してですが、行を特定して行の列に対して値を書き換えることになります。 複数の対象行を一括して更新、といったことはできません。 例えば、「update tablea set retouchdate='20050326' where c='japan'」のような処理と 同等のことを直接できるメソッドはありません。 自分で対象となる行をSelectメソッドで選択し、結果をfor each等でループして変更を行います。
分類:[.NET]
こんにちは。
Datasetの中から条件に合う行を探したいのですが、
SQL文を使用し探し出したり更新したりすることはできますか?
tmpTable_forAppendNewColValue:比較用のキーと追加したい項目だけのDatatable
orgTable:新しい列の定義だけを追加済みの元のDatatable
For Each DataRow In DataRow2
〜
〜
Next
のように1行ずつ探していくしかないのでしょうか?