- PR -

SqlDataAdapterについて

1
投稿者投稿内容
C#初心者
会議室デビュー日: 2008/11/13
投稿数: 11
投稿日時: 2009-01-19 11:25
いつも参考にさせてもらってます。
SqlDataAdapter、DataSetを使ってのデータベース更新について教えて下さい。

■開発言語   C#2005
■データベース SQL Server

顧客データ(テキスト)がありそのデータから3つのテーブルにデータを保存する部分を作成しています。
現在、複数テーブルをそれぞれSqlDataAdapterを使ってFillでデータをDataSetにしています。

-------------------------------------------------------------
SqlDataAdapter da = new SqlDataAdapter(selectStr, connStr);
DataSet ds = new DataSet();
da.Fill(ds, "顧客情報");
DataTable dt = ds.Tables["顧客情報"];
DataRow newRow = dt.NewRow();

SqlDataAdapter da2 = new SqlDataAdapter(selectStr2, connStr);
DataSet ds2 = new DataSet();
da2.Fill(ds, "商品情報");
DataTable dt2 = ds.Tables["商品情報"];
DataRow newRow2 = dt2.NewRow();

SqlDataAdapter da3 = new SqlDataAdapter(selectStr3, connStr);
DataSet ds3 = new DataSet();
da3.Fill(ds, "商品情報2");
DataTable dt3 = ds.Tables["商品情報2"];
DataRow newRow3 = dt3.NewRow();

ArrayList al = new ArrayList();
using (StreamReader sr = new StreamReader("D:\\Text.txt", Encoding.GetEncoding("Shift_JIS")))
{
while ((line = sr.ReadLine()) != null)
{
al.Add(line);
}

for (int i = 1; i < 10; i++)
{
   strText = al[i].ToString();
newRow[j] = strText;
j = j + 1;
}
dt.Rows.Add(newRow);
//SqlCommandBuilder cb = new SqlCommandBuilder(da);
    da.Update(ds, "顧客情報");

   ※da2(商品情報)、da3(商品情報2)についても同じように処理しています
-------------------------------------------------------------------

このようにそれぞれテーブルをセットしています。
これで出来なくはないのですが、もう少しスマートな方法で出来ないのでしょうか?
TableMappingsを使えばできそうなのですが・・。
まだまだ勉強不足で理解できていないのです。

皆様の知識を貸してください。
宜しくお願い致します。
_________________
1

スキルアップ/キャリアアップ(JOB@IT)