繝励Ο繧ー繝ゥ繝險隱 繝繝シ繧ソ蝙具シ咼ataSet蝙

DataTable蝙

using System.Data;

DataTable myTable = new DataTable();
窶サ蜷榊燕繧ゆサ倥¢繧峨l繧九
DataTable myTable = new DataTable(tableName:”MyTable”);

蛻怜ョ夂セゥ(蜷榊燕縲∝梛)
(1)DataColumn繧ェ繝悶ず繧ァ繧ッ繝医↓螳夂セゥ竍奪ataTable縺ォ譬シ邏
DataColumn myCol1 = new DataColumn(columnName:”col1″,dataType:typeof(int));
myTable.Columns.Add(column: myCol1);

(2)DataColumn繧ェ繝悶ず繧ァ繧ッ繝医↓螳夂セゥ縺ィ蜷梧凾縺ォDataTable縺ォ譬シ邏
myTable.Columns.Add(column: new DataColumn(columnName: "col2″, dataType: typeof(int)));

(3)DataColumn繧ェ繝悶ず繧ァ繧ッ繝医r螳夂セゥ縺帙★縲.ataTable縺ォ譬シ邏
myTable.Columns.Add(columnName: "name3″, type: typeof(string));

//陦後ョ繝シ繧ソ繧剃ス懈(1陦檎岼)
DataRow myRow = myTable.NewRow();

//陦悟ョ夂セゥ(螳夂セゥ貂医∩蛻玲ュ蝣ア繧り。後ョ繝シ繧ソ縺ォ譬シ邏阪&繧後※縺繧)
myRow[“name1”] = 5;
myRow[“name2”] = 10;
myRow[“name3”] = "test";

//陦後ョ繝シ繧ソ繧奪ataTable縺ク譬シ邏
myTable.Rows.Add(row: myRow);

//陦後ョ繝シ繧ソ繧剃ス懈(2陦檎岼)
myRow = myTable.NewRow();

myRow[“name1”] = 50;
myRow[“name2”] = "test2";
myRow[“name3”] = 1000;

myTable.Rows.Add(row: myRow);

//陦後ョ繝シ繧ソLoopシ繝繝シ繧ソ蜿門セ
foreach (DataRow elm in myTable.Rows)
{
縲縲Console.WriteLine(elm[“name1”].ToString());
縲縲竍 5縲50
}

//謚ス蜃コ譚。莉カ縲鬆蠎上r謖螳
string sqlWhere = "name1 = 100";
string sqlOrder = "name1 ASC"; //DESC
foreach (DataRow elm in myTable.Select(filterExpression: sqlWhere, sort: sqlOrder))
{
縲縲Console.WriteLine(elm[“name1”].ToString());
縲縲竍 100
}

Dim myTable As New DataTable
'窶サ蜷榊燕繧ゆサ倥¢繧峨l繧九Dim myTable As New DataTable(tableName:="MyTable")

'蛻怜ョ夂セゥ(蜷榊燕縲∝梛)

'(1)DataColumn繧ェ繝悶ず繧ァ繧ッ繝医↓螳夂セゥ竍奪ataTable縺ォ譬シ邏
Dim myCol1 As New DataColumn(columnName:="col1", dataType:=GetType(Integer))
myTable.Columns.Add(column:=myCol1)

'(2)DataColumn繧ェ繝悶ず繧ァ繧ッ繝医↓螳夂セゥ縺ィ蜷梧凾縺ォDataTable縺ォ譬シ邏
myTable.Columns.Add(column:=New DataColumn(columnName:="col2", dataType:=GetType(Integer)))

'(3)DataColumn繧ェ繝悶ず繧ァ繧ッ繝医r螳夂セゥ縺帙★縲.ataTable縺ォ譬シ邏
myTable.Columns.Add(columnName:="name3", type:=GetType(String))

'陦後ョ繝シ繧ソ繧剃ス懈(1陦檎岼)
Dim myRow As DataRow = myTable.NewRow()

'陦悟ョ夂セゥ(螳夂セゥ貂医∩蛻玲ュ蝣ア繧り。後ョ繝シ繧ソ縺ォ譬シ邏阪&繧後※縺繧)
myRow("name1") = 5
myRow("name2") = 10
myRow("name3") = "test"

'陦後ョ繝シ繧ソ繧奪ataTable縺ク譬シ邏
myTable.Rows.Add(row:=myRow)

'陦後ョ繝シ繧ソ繧剃ス懈(2陦檎岼)
myRow = myTable.NewRow()

myRow("name1") = 50
myRow("name2") = "test2"
myRow("name3") = 1000

myTable.Rows.Add(row:=myRow)

'陦後ョ繝シ繧ソLoopシ繝繝シ繧ソ蜿門セ
For Each elm As DataRow In myTable.Rows
縲Console.WriteLine(elm("name1").ToString())
'竍 5縲50
Next elm

'謚ス蜃コ譚。莉カ縲鬆蠎上r謖螳
Dim sqlWhere As String = "name1 = 100窶ウ"
Dim sqlOrder As String = "name1 ASC" 縲'DESC
For Each elm As DataRow In myTable.Select(filterExpression:=sqlWhere, sort:=sqlOrder)
縲Console.WriteLine(elm("name1").ToString())
'竍 100
Next elm

DataSet
DataTable繧呈峩縺ォ譬シ邏阪☆繧九ユ繝シ繝悶Ν蝙句、画焚

Dim mySet As New DataSet

mySet.Tables.Add(New DataTable(tableName:="myTable1"))
mySet.Tables.Add(New DataTable(tableName:="myTable2"))

逡・

Console.WriteLine(mySet.Tables(index:=0).Rows(index:=0).Item(columnIndex:=0))

VB6縺ァ縺ッDataTable蝙九ッ辟。縺上ヽecordSet蝙九
DataTable縺轡ataSet縺ォ隍謨ー縺ョDataTable繧呈シ邏阪〒縺阪k縺ョ縺ォ蟇セ縺励※縲ヽecordSet縺ッ蜊倅ク繝繝シ繝悶Ν縺ョ縺ソ縲

Dim cn As ADODB.Connection
Dim rs As ADODB.Recordset

Set cn = New ADODB.Connection
Set rs = New ADODB.Recordset

re.Open
rs.Filter = "螢イ荳企ォ >= 500000"

If rs.RecordCount > 0 Then
縲縲Do Until rs.EOF
縲縲縲縲Debug.Print(re.Fields("fld"))
縲縲縲縲rs.MoveNext
縲縲Loop
End If

rs.Close
cn.Close
Set rs = Nothing
Set cn = Nothing

DataSet蝙

DataTable繧呈峩縺ォ譬シ邏阪☆繧九ユ繝シ繝悶Ν蝙句、画焚

DataSet mySet = new DataSet();

mySet.Tables.Add(new DataTable(tableName: "myTable1"));
mySet.Tables.Add(new DataTable(tableName: "myTable2"));

逡・

Console.WriteLine(mySet.Tables[index: 0].Rows[index: 0][columnIndex: 0].ToString());

mySet.AcceptChanges();
myTable.AcceptChanges();
myRow.AcceptChanges();

DataRelation蝙

隕ェ繝繝シ繝悶Ν
DataTable myTable1 = new DataTable(tableName: @"MyTable1");

蛻怜ョ夂セゥ(蜷榊燕縲∝梛)
myTable1.Columns.Add(new DataColumn("col1", typeof(int)));
myTable1.Columns.Add(new DataColumn("col2", typeof(string)));
myTable1.Columns.Add(new DataColumn("col3", typeof(string)));
myTable1.PrimaryKey = new DataColumn[] { myTable1.Columns["col1"] };

foreach (var i in Enumerable.Range(start: 1, count: 10).Select(_ => _))
{
陦後ョ繝シ繧ソ繧剃ス懈(1陦檎岼)
縲DataRow myRow = myTable1.NewRow();

陦悟ョ夂セゥ(螳夂セゥ貂医∩蛻玲ュ蝣ア繧り。後ョ繝シ繧ソ縺ォ譬シ邏阪&繧後※縺繧)
縲myRow[0] = i;
縲myRow[1] = i.ToString();
縲myRow[2] = "test1";

陦後ョ繝シ繧ソ繧奪ataTable縺ク譬シ邏
縲myTable1.Rows.Add(row: myRow);
}

蟄舌ユ繝シ繝悶Ν
DataTable myTable2 = new DataTable(tableName: @"MyTable2");

蛻怜ョ夂セゥ(蜷榊燕縲∝梛)
myTable2.Columns.Add(new DataColumn("col1", typeof(int)));
myTable2.Columns.Add(new DataColumn("col2", typeof(int)));
myTable2.Columns.Add(new DataColumn("col3", typeof(string)));
myTable2.PrimaryKey = new DataColumn[] { myTable2.Columns["col1"] };

var keys = new[] { 1, 2, 3, 1, 2, 3, 1, 2, 3, 4 };

foreach (var i in Enumerable.Range(start: 1, count: 10).Select(_ => _))
{
陦後ョ繝シ繧ソ繧剃ス懈(1陦檎岼)
縲DataRow myRow = myTable2.NewRow();

陦悟ョ夂セゥ(螳夂セゥ貂医∩蛻玲ュ蝣ア繧り。後ョ繝シ繧ソ縺ォ譬シ邏阪&繧後※縺繧)
縲myRow[0] = i;
縲myRow[1] = keys[i-1];
縲myRow[2] = "test2";

陦後ョ繝シ繧ソ繧奪ataTable縺ク譬シ邏
縲myTable2.Rows.Add(row: myRow);
}

DataSet mySet = new DataSet();
mySet.Tables.Add(table: myTable1);
mySet.Tables.Add(table: myTable2);

繝ェ繝ャ繝シ繧キ繝ァ繝ウ菴懈
var myRelation = new DataRelation(
縲relationName: "MyRelation",
縲parentColumn: myTable1.Columns["col1"],
縲childColumn: myTable2.Columns["col2"]);
mySet.Relations.Add(myRelation);

foreach (DataRow row in myTable1.Rows)
{
隕ェ繝繝シ繝悶Ν縺ョ繧ュ繝シ繧呈戟縺、繝ャ繧ウ繝シ繝峨ョ縺ソ謚ス蜃コ
縲foreach (DataRow elm in row.GetChildRows("MyRelation"))
縲{
縲縲Console.WriteLine(elm[0] + ":" + elm[1] + ":" + elm[2]);
縲}
}

foreach (DataRow row in myTable2.Rows)
{
蟄舌ユ繝シ繝悶Ν縺ョ繧ュ繝シ繧呈戟縺、繝ャ繧ウ繝シ繝峨ョ縺ソ謚ス蜃コ
縲foreach (DataRow elm in row.GetParentRows("MyRelation"))
縲{
縲縲Console.WriteLine(elm[0] + ":" + elm[1] + ":" + elm[2]);
縲}
}

Follow me!