DataTableの項目値を操作するにはテーブルの何行目の何列目かを指定します。
dataTable.Rows[RowIndex][ColumnIndex]
※ColumnIndexをColumnNameに変えても大丈夫です。
こんな感じです。
DataSetからだと
dataSet.Tables[TableName].Rows[RowIndex][ColumnIndex]
※TableNameをTableIndexに変えても大丈夫です。
※ColumnIndexをColumnNameに変えても大丈夫です。
こんな感じになります。
では、DataTableの中の項目を編集してみます。
ここではメロンパンの価格を105→110円に変えます。
メロンパンのデータが入っているのは2行目(RowIndexは1)で
価格は3列目(ColumnIndexは2)です、以下がサンプルコードとなります。
テストコード
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
|
DataSet dataset = new DataSet();
DataTable dt = new DataTable("Table1");
string[] id = { "S0001", "S0002", "S0003", "S0004", "S0005", "S0006" };
string[] name = { "あんぱん", "メロンパン", "カレーパン", "いちごじゃむパン", "チョココロネ", "クロワッサン" };
string[] value = { "100", "105", "110", "115", "120", "125" };
// DataTableに列を追加します。
dt.Columns.Add("商品番号");
dt.Columns.Add("商品名");
dt.Columns.Add("価格");
// DataSetにDataTableを追加します。
dataset.Tables.Add(dt);
// DataTableにデータを格納します。
for (int i = 0; i < 5; i++)
{
dt.Rows.Add(dt.NewRow());
dt.Rows[i]["商品番号"] = id[i];
dt.Rows[i]["商品名"] = name[i];
dt.Rows[i]["価格"] = value[i];
}
// カラム名を指定するパターンです。
dataset.Tables["Table1"].Rows[1]["価格"] = "110";
// カラムインデックスを指定するパターンです。
dataset.Tables[0].Rows[1][2] = "110";
|
DataTableに列を追加するときカラム名しか設定してません。
このときのカラムの型はstring型になるようです。
なので、105→110にかえるとき"110"としています。
もし110とするとカラムのデータと異なる型を設定したということで例外が発生します。