[C#] DataSetへのデータ追加方法
C#でDataSetにデータを追加するには、まずDataTableを作成し、それをDataSetに追加します。
DataTableには列を定義し、行を追加します。
まず、DataTableオブジェクトを作成し、Columns.Addメソッドで列を定義します。
次に、DataRowオブジェクトをDataTable.NewRowメソッドで作成し、各列にデータを設定します。
設定後、DataTable.Rows.Addメソッドで行を追加します。
最後に、DataSet.Tables.AddメソッドでDataTableをDataSetに追加します。
これにより、DataSetにデータが格納されます。
DataSetへのデータ追加手順
DataRowの作成
DataRowを作成するには、まずDataTableを用意する必要があります。
DataTableは、DataSet内のデータを格納するためのテーブルのような役割を果たします。
以下のサンプルコードでは、DataTableを作成し、その中にDataRowを追加する準備をします。
using System;
using System.Data;
using System.Windows.Forms;
public partial class MyForm : Form
{
private DataSet dataSet;
private DataTable dataTable;
public MyForm()
{
InitializeComponent();
// DataSetの初期化
dataSet = new DataSet();
// DataTableの初期化
dataTable = new DataTable("SampleTable");
// DataTableにカラムを追加
dataTable.Columns.Add("ID", typeof(int));
dataTable.Columns.Add("Name", typeof(string));
}
}このコードでは、SampleTableという名前のDataTableを作成し、IDとNameという2つのカラムを追加しています。
DataRowへのデータ設定
次に、作成したDataRowにデータを設定します。
DataRowはDataTableに追加する前に、必要なデータを設定するために使用されます。
以下のサンプルコードでは、DataRowを作成し、データを設定しています。
// DataRowの作成
DataRow newRow = dataTable.NewRow(); // 新しい行を作成
// DataRowにデータを設定
newRow["ID"] = 1; // IDに1を設定
newRow["Name"] = "山田太郎"; // Nameに"山田太郎"を設定このコードでは、newRowというDataRowを作成し、IDとNameにそれぞれ値を設定しています。
DataTableへの行追加
設定したDataRowをDataTableに追加します。
DataTableのRowsコレクションに新しい行を追加することで、データを格納します。
以下のサンプルコードでは、先ほど作成したDataRowをDataTableに追加しています。
// DataTableにDataRowを追加
dataTable.Rows.Add(newRow); // newRowをDataTableに追加このコードを実行すると、dataTableに新しい行が追加されます。
DataSetへのDataTable追加
最後に、DataTableをDataSetに追加します。
DataSetは複数のDataTableを持つことができるため、必要に応じてDataTableを追加することができます。
以下のサンプルコードでは、作成したDataTableをDataSetに追加しています。
// DataSetにDataTableを追加
dataSet.Tables.Add(dataTable); // dataTableをDataSetに追加このコードを実行することで、dataSetにdataTableが追加され、データの管理が可能になります。
DataSetの操作と管理
DataSet内のデータ検索
DataSet内のデータを検索するには、DataTableのSelectメソッドを使用します。
このメソッドを使うことで、特定の条件に合致する行を取得することができます。
以下のサンプルコードでは、IDが1の行を検索しています。
// IDが1の行を検索
DataRow[] foundRows = dataTable.Select("ID = 1"); // 条件に合う行を取得
// 検索結果の表示
foreach (DataRow row in foundRows)
{
Console.WriteLine($"ID: {row["ID"]}, Name: {row["Name"]}"); // 検索結果を表示
}このコードを実行すると、IDが1の行のIDとNameがコンソールに表示されます。
DataSetのデータ更新
DataSet内のデータを更新するには、対象のDataRowを取得し、必要なフィールドの値を変更します。
以下のサンプルコードでは、IDが1の行のNameを更新しています。
// IDが1の行を検索
DataRow[] foundRows = dataTable.Select("ID = 1"); // 条件に合う行を取得
// 行が見つかった場合、データを更新
if (foundRows.Length > 0)
{
foundRows[0]["Name"] = "佐藤花子"; // Nameを更新
}このコードを実行すると、IDが1の行のNameが佐藤花子に更新されます。
DataSetのデータ削除
DataSet内のデータを削除するには、削除したいDataRowを取得し、Deleteメソッドを使用します。
以下のサンプルコードでは、IDが1の行を削除しています。
// IDが1の行を検索
DataRow[] foundRows = dataTable.Select("ID = 1"); // 条件に合う行を取得
// 行が見つかった場合、データを削除
if (foundRows.Length > 0)
{
foundRows[0].Delete(); // 行を削除
}このコードを実行すると、IDが1の行がDataTableから削除されます。
削除後は、DataTableのAcceptChangesメソッドを呼び出すことで、変更を確定させることができます。
DataSetの活用例
DataSetを用いたデータバインディング
DataSetを使用してデータバインディングを行うことで、UIコンポーネントにデータを簡単に表示することができます。
以下のサンプルコードでは、DataGridViewにDataTableをバインドしています。
// DataGridViewの初期化
DataGridView dataGridView = new DataGridView
{
DataSource = dataSet.Tables["SampleTable"] // DataSet内のDataTableをバインド
};このコードを実行すると、SampleTableのデータがDataGridViewに表示されます。
データの変更は自動的にUIに反映されます。
DataSetを用いたデータのフィルタリング
DataSet内のデータをフィルタリングするには、DataTableのDefaultViewを使用します。
これにより、特定の条件に基づいてデータを表示することができます。
以下のサンプルコードでは、Nameが山田太郎の行のみを表示しています。
// DataTableのDefaultViewを使用してフィルタリング
dataTable.DefaultView.RowFilter = "Name = '山田太郎'"; // フィルタ条件を設定
// フィルタリングされたデータを表示
foreach (DataRowView rowView in dataTable.DefaultView)
{
Console.WriteLine($"ID: {rowView["ID"]}, Name: {rowView["Name"]}"); // フィルタ結果を表示
}このコードを実行すると、Nameが山田太郎の行だけが表示されます。
DataSetを用いたデータのソート
DataSet内のデータをソートするには、DataTableのDefaultViewのSortプロパティを使用します。
以下のサンプルコードでは、IDを昇順でソートしています。
// DataTableのDefaultViewを使用してソート
dataTable.DefaultView.Sort = "ID ASC"; // IDを昇順でソート
// ソートされたデータを表示
foreach (DataRowView rowView in dataTable.DefaultView)
{
Console.WriteLine($"ID: {rowView["ID"]}, Name: {rowView["Name"]}"); // ソート結果を表示
}このコードを実行すると、IDが昇順にソートされたデータが表示されます。
これにより、データの視覚的な整理が容易になります。
まとめ
この記事では、C#におけるDataSetの基本的な使い方やデータの追加、操作、管理方法について詳しく解説しました。
また、DataSetを活用したデータバインディングやフィルタリング、ソートの具体例も紹介しました。
これらの知識を活用して、実際のアプリケーション開発においてDataSetを効果的に利用してみてください。