DOBON.NET DOBON.NETプログラミング掲示板過去ログ

DataSetに対してのSQL文の発行について

環境/言語:[開発機 XP VB.NET ]
分類:[.NET]

お世話になります。

PGM内に作成しているDataSetに対して、SQL文で件数を取ろうとしているのですが、DataSetに対して、SQL文を実行している文献がなかなかありません。
配列に落してその中を調べる方がよいのでしょうか?

具体的には以下のようにsql文を発行したいと考えています。
sqlString = "SELECT COUNT(c-Marubatu) FROM Dataset1 WHERE c-Marubatu = '×'"

またDATASET1のDATATABLE1に項目名は定義しています。SQLサーバと定義の方法が違うので、
(c-Marubatu)のように書けるのかも不安です。
■No23187に返信(KYOUさんの記事)

> PGM内に作成しているDataSetに対して、SQL文で件数を取ろうとしているのですが、DataSetに対して、SQL文を実行している文献がなかなかありません。
> 配列に落してその中を調べる方がよいのでしょうか?

PGM って何でしょうか?なんとなく意味は通じるかもしれませんが(あるいは通じなくても
回答には問題ないでしょうが)オレオレ短縮用語は使わない方がよいと思います。
「(文献が)なかなかありません」とのことですが、ということは逆に何件かは存在した
という解釈でよいでしょうか。であれば個人的興味もあるので教えていただきたいです。

自分の理解では、DataSet に対して SQL 文を発行することはできないと思います。
カウントであれば、DataTable の Select メソッドを使うとか、DataView を作成して
RowFilter プロパティを設定するなどで求められる場合もあります。
> PGM内に作成しているDataSetに対して、SQL文で件数を取ろうとしているのですが、DataSetに対して、SQL文を実行している文献がなかなかありません。
> 配列に落してその中を調べる方がよいのでしょうか?

  2008なら・・・
  LINQ To DataSet では、ダメでしょうか?

以上。
データセットに値が入っているのであれば…

int count;
for (int i = 0 ; i < DataSet1.Rows.Count ; i ++)
{
   if (DataSet1.Rows[i].Columns["c-Marubatu"].ToString() == "×")
   {
      count ++;
   }
}

で取得できるような気もしますが。

ぽぴ王子様同様、DataSetに対してSQLを発行するというのは聞いたことないので、
是非参考までにご教示下さい。
ぽぴ王子さんアドバイスありがとうございます。

DataTable の Select メソッドで解決できました。

DataSet に対して SQL 文ですが、文献はありませんでした。
DataSetはメモリ上のデータセットと思っていましたので、
もしかしたら可能かなと・・・

紛らわしい言葉で遣いすみませんでした。
オショウさんアドバイスありがとうございます。

現在VB2005なので、バージョンアップした際に考えてみたいと思います。
純@WASさんアドバイスありがとうございます。


純@WASさんの方法も確認して件数がとれることができました。


DataSet に対して SQL 文ですが、文献はありませんでした。
紛らわしい言葉で遣いすみませんでした。

DOBON.NET | プログラミング道 | プログラミング掲示板