【ASP.NET・C#】DataTableからDataRowを参照し、特定の列の値をとってくるバリエーション
【今回の紹介】
データテーブルにDBからデータを詰め込んだ後、特定の列のデータだけ
取得したい場合のコーディングについてまとめたので、メモ。
主にDataTableからどのようにDataRowにアクセスして、値を参照するかという流れ
【内容】
以下のように、何通りかのパターンがある。
並べてみると、やはりforeach文が簡潔でわかりやすいように見える。
だが、サンプルソースや現在かかわっているPJでもfor文を使用している箇所も多い。
【参考ソース】
//db接続情報の設定 string dbcn = ConfigurationManager.AppSettings["con.str"]; //sqlの設定 StringBuilder strb = new StringBuilder(); strb.Append("select "); strb.Append(" * "); strb.Append(" from table_2 "); //datatableを設定 テーブルのデータをいれる箱 DataTable dt = new DataTable(); //テーブルからデータを取得してきてくれるdatatableを取得 テーブルから接続情報と抽出条件をもとにデータを取得するポンプ SqlDataAdapter da = new SqlDataAdapter(strb.ToString(), dbcn); //sqlを実行し、結果をdatatableに格納する da.Fill(dt); //直接DataTableから直接DataRowsにアクセスする① for(int i = 0; i < dt.Rows.Count;i++){ Debug.WriteLine("①" + dt.Rows[i]["A"]); } //DataRowsに格納してからデータを取得する② for (int i = 0; i < dt.Select("E = '3' ").Length; i++) { Debug.WriteLine("②" + dt.Rows[i]["A"]); } //DataRowsに格納してからデータを取得する③ DataRow[] dr = dt.Select("E = '3' "); for (int i = 0;i < dr.Length; i++){ Debug.WriteLine("③" + dr[i]["A"]); } //DataRowsに格納してからデータを取得す④ for (int i = 0; i < dt.Rows.Count; i++) { DataRow dr2= dt.Rows[i]; Debug.WriteLine("④" + dr2["A"]); } //DataRowsに格納してからデータを取得する⑤ foreach(DataRow dr3 in dt.Rows){ Debug.WriteLine("⑤" + dr3["A"]); }
入門者向けブログを書いている人がどんな人物で、どんな人生を歩んでいるのか、もし興味があれば読んでいっていただけると幸いです。
☆入社半年の時☆
文系SE(システムエンジニア)の実態―配属後4カ月で思うこと― - 新卒から文系エンジニア→人材業界に転職した人のブログ
☆入社3年目の時☆
文系SE(システムエンジニア)の実態―三年目で思うこと― - 新卒から文系エンジニア→人材業界に転職した人のブログ
☆英語も勉強してました!
【英語】文系SEが、TOEIC350点付近⇒TOEIC850になった話 - 新卒から文系エンジニア→人材業界に転職した人のブログ
☆これから転職を考えている人向け☆
【退職エントリー】IT業界の知識を活かして、異業界異職種への退職エントリー(SEから大手人材営業へ) - 新卒から文系エンジニア→人材業界に転職した人のブログ
https://note.mu/yoyogip/n/ncb217344db82