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

型付データテーブルの行内容更新について

環境/言語:[Windows XP / C# 2005 VB.net 2005 ]
分類:[.NET]

2007/07/23(Mon) 10:15:02 編集(投稿者)

じゅでです。
いつもこちらの掲示板には、お世話になっております。

今回の質問は、題名のとおり、型付データテーブルにて、行内容を更新する際の
方法についてです。

普通にDataTableならLoad、LoadDataRowなどでいけるのですが、
xsdファイルから、作成される、DataSetを継承したクラスを使用して、
型付データテーブルを宣言しても、メソッドは見つかるのですが、
プライマリーキーが設定されていないなどで、新規に行が追加されてしまいます。
出来ればこんな感じになるとうれしいのですが。

public void サンプルメソッド(ref 型付データテーブル dt)
{
foreach(型付データRow dr in dt)
{
dr.hoge = "ほげ";
dt.LoadDataRow(dr); }
}

どなたか、型付データテーブルについてご存知の方がいらっしゃいましたら、
よろしくお願いいたします。

っというかファイルから読込んだデータをDataTableにつっこんで、更新処理を
行うってのはうまいやりかたなのでしょうか?

DataTableもDataRowも使った事が無いのでいまいちよくわかっておりません。

以上
申し訳ありません。
自己解決しました。

private void button1_Click(object sender, EventArgs e)
{
DataTable dt = CreateDataTable();

DataRow dr1 = dt.NewRow();
dr1[0] = "0001";
dr1[1] = "hoge1";
dt.Rows.Add(dr1);

DataRow dr2 = dt.NewRow();
dr2[0] = "0002";
dr2[1] = "hoge2";
dt.Rows.Add(dr2);

foreach (DataRow dr in dt.Rows)
{
Console.WriteLine(dr[0] + " / " + dr[1]);
}

foreach (DataRow dr in dt.Rows)
{
dr[0] = "0003";
dr[1] = "hoge3";
}

foreach (DataRow dr in dt.Rows)
{
Console.WriteLine(dr[0] + " / " + dr[1]);
}
}

private DataTable CreateDataTable()
{
DataTable dt = new DataTable("hoge");
DataColumn dcCode = new DataColumn("Code", typeof(string));
DataColumn dcName = new DataColumn("Name", typeof(string));

dt.Columns.Add(dcCode);
dt.Columns.Add(dcName);

return dt;
}

これで更新が出来たのですね。
てっきりLoadやらLoadDataRowやらを使用するのかと思いきや、
これだけでDataTableの更新が行えたのですね。
まったく知りませんでした。
ご迷惑をおかけしました。

LoadとLoadDataRowについてはいまいちまだ使い方がわかっていないですが。
それについては、今後調べてみます。

お騒がせして申し訳ありませんでした。

以上
解決済み!

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