C# で DataTable を作成する
-
C# で
DataTable
クラスを使用してデータテーブルを作成する - C# でデータテーブルに行を追加する
- データテーブルのデータを C# で XML にエクスポートする
- データテーブルの構造を C# で XML にエクスポートする
このチュートリアルでは、C# でデータテーブルを作成して入力する方法について説明します。
C# で DataTable
クラスを使用してデータテーブルを作成する
DataTable
クラスは、C# でデータテーブルを作成するために使用されます。データテーブルは、C# のリレーショナルデータを含むテーブルを表します。DataTable
クラスを使用して最初にデータテーブルを作成するとき、そのスキーマには指定されたスキーマがありません。データテーブルの構造を指定するには、DataColumn
クラスのオブジェクトを作成して追加する必要があります。C# の DataTable.Columns.Add()
関数を使用して、DataColumn
クラスのオブジェクトを DataTable
クラスのオブジェクトに追加できます。
using System.Data;
namespace data_table {
class Program {
static void Main(string[] args) {
DataTable workTable = new DataTable("Customers");
DataColumn column1 = new DataColumn("Column1");
DataColumn column2 = new DataColumn("Column2");
workTable.Columns.Add(column1);
workTable.Columns.Add(column2);
}
}
}
上記のコードでは、Customers
という名前のデータテーブル workTable
と、それぞれ Column1
と Column2
という名前の 2つの異なる列 column1
と column2
を作成しました。両方の列を追加して、workTable
のスキーマを指定しました。これで、データを行の形式でテーブルに追加できます。
C# でデータテーブルに行を追加する
テーブルに行を追加するには、DataRow
クラスのオブジェクトを作成する必要があります。DataRow
クラスは、C# のテーブルにデータを追加するための新しい行を定義します。C# の DataTable.Row.Add()
関数を使用して、DataRow
クラスのオブジェクトを DataTable
クラスのオブジェクトに追加できます。次のコード例は、C# の DataRow
クラスを使用してテーブルにデータを追加する方法を示しています。
using System.Data;
namespace data_table {
class Program {
static void Main(string[] args) {
DataTable workTable = new DataTable("Customers");
DataColumn column1 = new DataColumn("Column1");
DataColumn column2 = new DataColumn("Column2");
workTable.Columns.Add(column1);
workTable.Columns.Add(column2);
DataRow row1 = workTable.NewRow();
row1["Column1"] = "value1";
row1["Column2"] = "value2";
workTable.Rows.Add(row1);
}
}
}
上記のコードでは、DataRow
クラスのインスタンス row1
を workTable.NewRow()
関数で初期化しました。row1
の両方の列のデータを追加し、C# の workTable.Rows.Add(row1)
関数を使用して workTable
に row1
を追加しました。
次の方法で、テーブルに新しい行を追加することもできます。
object[] o = { "object value1", "object value2" };
workTable.Rows.Add(o);
上記のコードでは、DataRow
クラスのインスタンスを作成せずに、workTable
テーブルに新しい行を追加しました。C# でテーブルに新しい行を挿入するために使用できる別のアプローチを以下に示します。
workTable.Rows.Add("direct value1", "direct value2");
上記のコードでは、オブジェクトの配列を宣言することなく、workTable
テーブルの新しい行に値を直接追加しました。
データテーブルのデータを C# で XML にエクスポートする
DataTable
クラスでテーブルを作成し、DataColumn
クラスでその構造を定義し、テーブルに複数の行を追加したので、テーブルを表示できます。C# の DataTable.WriteXml()
関数を使用して、テーブル全体を xml ファイルにエクスポートできます。DataTable.WriteXml(path)
関数は、テーブルのすべてのデータを path
の xml ファイルに書き込むために使用されます。次のコード例は、C# の DataTable.WriteXml()
関数を使用してテーブルデータを xml ファイルに書き込む方法を示しています。
using System.Data;
namespace data_table {
class Program {
static void Main(string[] args) {
DataTable workTable = new DataTable("Customers");
DataColumn column1 = new DataColumn("Column1");
DataColumn column2 = new DataColumn("Column2");
workTable.Columns.Add(column1);
workTable.Columns.Add(column2);
DataRow row1 = workTable.NewRow();
row1["Column1"] = "value1";
row1["Column2"] = "value2";
workTable.Rows.Add(row1);
object[] o = { "object value1", "object value2" };
workTable.Rows.Add(o);
workTable.Rows.Add("direct value1", "direct value2");
workTable.WriteXml("workTable.xml");
}
}
}
上記のコードでは、C# の workTable.WriteXml("workTable.xml")
関数を使用して、workTable
テーブル内のすべてのデータを xml ファイル workTable.xml
にエクスポートしました。workTable.xml
ファイルの内容を以下に示します。
<?xml version="1.0" standalone="yes"?>
<DocumentElement>
<Customers>
<Column1>value1</Column1>
<Column2>value2</Column2>
</Customers>
<Customers>
<Column1>object value1</Column1>
<Column2>object value2</Column2>
</Customers>
<Customers>
<Column1>direct value1</Column1>
<Column2>direct value2</Column2>
</Customers>
</DocumentElement>
データテーブルの構造を C# で XML にエクスポートする
逆に、テーブルのスキーマまたは構造だけを C# の xml ファイルにエクスポートすることもできます。DataTable.WriteXmlSchema(path)
関数は、データテーブルの構造を path
内の xml ファイルに書き込むために使用されます。次のコード例は、C# で DataTable.WriteXmlSchema(path)
関数を使用してテーブルの構造を xml ファイルに書き込む方法を示しています。
using System.Data;
namespace data_table {
class Program {
static void Main(string[] args) {
DataTable workTable = new DataTable("Customers");
DataColumn column1 = new DataColumn("Column1");
DataColumn column2 = new DataColumn("Column2");
workTable.Columns.Add(column1);
workTable.Columns.Add(column2);
DataRow row1 = workTable.NewRow();
row1["Column1"] = "value1";
row1["Column2"] = "value2";
workTable.Rows.Add(row1);
object[] o = { "object value1", "object value2" };
workTable.Rows.Add(o);
workTable.Rows.Add("direct value1", "direct value2");
workTable.WriteXml("workTable.xml");
workTable.WriteXmlSchema("workTableSchema.xml");
}
}
}
上記のコードでは、C# の workTable.WriteXmlSchema("workTableSchema.xml")
関数を使用して、workTable
テーブルの構造を xml ファイル workTableSchema.xml
にエクスポートしました。workTable.Schema.xml
ファイルの内容を以下に示します。
<?xml version="1.0" standalone="yes"?>
<xs:schema id="NewDataSet" xmlns="" xmlns:xs="https://www.w3.org/2001/XMLSchema" xmlns:msdata="urn:schemas-microsoft-com:xml-msdata">
<xs:element name="NewDataSet" msdata:IsDataSet="true" msdata:MainDataTable="Customers" msdata:UseCurrentLocale="true">
<xs:complexType>
<xs:choice minOccurs="0" maxOccurs="unbounded">
<xs:element name="Customers">
<xs:complexType>
<xs:sequence>
<xs:element name="Column1" type="xs:string" minOccurs="0" />
<xs:element name="Column2" type="xs:string" minOccurs="0" />
</xs:sequence>
</xs:complexType>
</xs:element>
</xs:choice>
</xs:complexType>
</xs:element>
</xs:schema>
Maisam is a highly skilled and motivated Data Scientist. He has over 4 years of experience with Python programming language. He loves solving complex problems and sharing his results on the internet.
LinkedIn