繝励Ο繧ー繝ゥ繝險隱 繝繝シ繧ソ蝙具シ咼ataSet蝙
DataTable蝙
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
}
'窶サ蜷榊燕繧ゆサ倥¢繧峨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))
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蝙
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]);
縲}
}