C#でのDataTableの使い方とは?データをWPFのDataGridでGUI表示する方法やデータの抽出方法を紹介します!
- SE
- #post_excerptC#でのDataTableの使い方を教えてください。
- PM
- 分かりました。C#でのDataTableの使い方についてご説明しましょう。データをWPFのDataGridでGUI表示する方法やデータの抽出方法についてもご紹介します。
C#でのDataTableの使い方とは?
今回は、C#でのDataTableの使い方について説明します。DataTableは表形式のデータを扱います。このデータをWPFのDataGridでGUI表示する方法を紹介します。
C#でのDataTableの使い方に興味のある方はぜひご覧ください。
WPFアプリの作成
ここでは、Visual Studio CodeでC#のWPFアプリケーションを作成します。Visual Studio Codeを開き、File → OpenFolder で作業フォルダを指定します。
次に、Terminal → New Terminalを選択します。コンソールにdotnet new wpfを入力してEnterします。コンソールにRestore succeeded.が表示されれば成功です。作業フォルダに、WPFアプリ開発に必要なファイル・フォルダが作成されます。
コンソールにdotnet runを入力してEnterすると、C#のWPFアプリケーションが起動します。
DataTableの表示
C#でWPFアプリケーションを作成し、DataTableをGUI表示する方法を紹介します。
MainWindow.xaml.csを以下のように変更します。
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
28
29
30
31
32
33
34
35
36
|
using System.Data;
namespace DataTableSample
{
/// <summary>
/// Interaction logic for MainWindow.xaml
/// </summary>
public partial class MainWindow : Window
{
public MainWindow()
{
InitializeComponent();
DataSet dataSet = new DataSet();
DataTable dataTable = new DataTable(“Table”);
// Column名の追加
dataTable.Columns.Add(“名前”);
dataTable.Columns.Add(“年齢”, Type.GetType(“System.Int32”));
dataTable.Columns.Add(“性別”);
// DataTableを追加
dataSet.Tables.Add(dataTable);
// DataTableにデータを追加
dataTable.Rows.Add(“ichiro”, 30, “male”);
dataTable.Rows.Add(“jiro”, 20, “male”);
dataTable.Rows.Add(“saburo”, 25, “male”);
dataTable.Rows.Add(“hanako”, 32, “female”);
dataTable.Rows.Add(“takako”, 23, “female”);
dataTable.Rows.Add(“hitomi”, 18, “female”);
this.DataContext = dataTable;
}
}
}
|
次に、MainWindow.xamlを以下のように変更します。一部を抜粋しています。
1
2
3
|
<Grid>
<DataGrid ItemsSource=“{Binding}” x:Name=“dataGrid” />
</Grid>
|
コンソールにdotnet runを入力してEnterすると、WPFアプリケーションにDataTableが表示されます。
このように、C#でWPFアプリケーションを作成できます。
Selectメソッドでデータ抽出
C#にて、DataTableをSelectメソッドで絞り込む方法を紹介します。MainWindow.xaml.csを以下のように変更します。
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
28
29
30
31
32
33
34
35
36
37
38
39
|
namespace DataTableSample
{
/// <summary>
/// Interaction logic for MainWindow.xaml
/// </summary>
public partial class MainWindow : Window
{
public MainWindow()
{
InitializeComponent();
DataSet dataSet = new DataSet();
DataTable dataTable = new DataTable(“Table”);
// Column名の追加
dataTable.Columns.Add(“名前”);
dataTable.Columns.Add(“年齢”, Type.GetType(“System.Int32”));
dataTable.Columns.Add(“性別”);
// DataTableを追加
dataSet.Tables.Add(dataTable);
// DataTableにデータを追加
dataTable.Rows.Add(“ichiro”, 30, “male”);
dataTable.Rows.Add(“jiro”, 20, “male”);
dataTable.Rows.Add(“saburo”, 25, “male”);
dataTable.Rows.Add(“hanako”, 32, “female”);
dataTable.Rows.Add(“takako”, 23, “female”);
dataTable.Rows.Add(“hitomi”, 18, “female”);
this.DataContext = dataTable;
// Selectメソッドでデータ抽出
DataRow[] dRows = dataTable.Select(“性別 = 'male'“);
foreach (var row in dRows) {
Console.WriteLine(“名前:{0}点、年齢:{1}、性別:{2}”, row[0], row[1], row[2]);
}
}
}
}
|
コンソールログを出力するために、App.xaml.csを以下のように変更します。
1
2
3
4
5
6
7
8
9
10
|
public partial class App : Application
{
[System.Runtime.InteropServices.DllImport(“Kernel32.dll”)]
public static extern bool AttachConsole(int processId);
static App()
{
AttachConsole(-1);
}
}
|
実行すると、ターミナルに以下のように表示されます。
1
2
3
|
名前:ichiro点、年齢:30、性別:male
名前:jiro点、年齢:20、性別:male
名前:saburo点、年齢:25、性別:male
|
LINQでデータ抽出
C#にて、DataTableをLINQで絞り込む方法を紹介します。MainWindow.xaml.csを以下のように変更します。
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
28
29
30
31
32
33
34
35
36
37
38
39
40
|
namespace DataTableSample
{
/// <summary>
/// Interaction logic for MainWindow.xaml
/// </summary>
public partial class MainWindow : Window
{
public MainWindow()
{
InitializeComponent();
DataSet dataSet = new DataSet();
DataTable dataTable = new DataTable(“Table”);
// Column名の追加
dataTable.Columns.Add(“名前”);
dataTable.Columns.Add(“年齢”, Type.GetType(“System.Int32”));
dataTable.Columns.Add(“性別”);
// DataTableを追加
dataSet.Tables.Add(dataTable);
// DataTableにデータを追加
dataTable.Rows.Add(“ichiro”, 30, “male”);
dataTable.Rows.Add(“jiro”, 20, “male”);
dataTable.Rows.Add(“saburo”, 25, “male”);
dataTable.Rows.Add(“hanako”, 32, “female”);
dataTable.Rows.Add(“takako”, 23, “female”);
dataTable.Rows.Add(“hitomi”, 18, “female”);
this.DataContext = dataTable;
// LINQでデータ抽出
DataRow[] dRows = dataTable.AsEnumerable()
.Where(row => row.Field<string>(“性別”) == “female”).ToArray();
foreach (var row in dRows) {
Console.WriteLine(“名前:{0}点、年齢:{1}、性別:{2}”, row[0], row[1], row[2]);
}
}
}
}
|
実行すると、ターミナルに以下のように表示されます。
1
2
3
|
名前:hanako点、年齢:32、性別:female
名前:takako点、年齢:23、性別:female
名前:hitomi点、年齢:18、性別:female
|
- SE
- #post_excerptC#でのDataTableを使ってデータをWPFのDataGridでGUI表示する方法やデータの抽出方法がよく分かりました。
- PM
- ご紹介したC#でのDataTableの使い方を参考にご自身でもソースコードを書いてみてください。
まとめ
いかがでしたでしょうか。C#でのDataTableの使い方について説明しました。DataTableは表形式のデータを扱います。このデータをWPFのDataGridでGUI表示する方法を紹介しました。
ぜひご自身でC#ソースコードを書いて、理解を深めてください。
Search キーワード検索
Popular 人気の記事
-
【VB.NET入門】DataGridViewの使い方まとめ
公開: 更新:
reccomended おすすめ記事
-
【.NETが統合】.NET 5の概要と今後のリリース予定
公開: 更新:
Categories 連載一覧
Tags タグ一覧
Jobs 新着案件
-
システム開発/東京都新宿区/【WEB面談可/C#経験者/20代前半の方活躍中/経験1年以上の方活躍中】/在宅勤務
月給29万~34万円東京都新宿区(新宿駅) -
システム開発/東京都新宿区/【WEB面談可/C#経験者/20代後半~40代の方活躍中/経験年数不問】/在宅勤務
月給41万~50万円東京都新宿区(新宿駅) -
デバック、テスト項目の作成/神奈川県横浜市/【WEB面談可/C#経験者/20代前半の方活躍中/経験1年以上の方活躍中】/在宅勤務
月給29万~34万円神奈川県横浜市(桜木町駅) -
デバック、テスト項目の作成/神奈川県横浜市/【WEB面談可/C#経験者/20代後半~40代の方活躍中/経験年数不問】/在宅勤務
月給41万~50万円神奈川県横浜市(桜木町駅) -
基幹システム開発導入/東京都新宿区/【WEB面談可/C#経験者/20代前半の方活躍中/経験1年以上の方活躍中】/在宅勤務
月給29万~34万円東京都新宿区(西新宿駅) -
基幹システム開発導入/東京都新宿区/【WEB面談可/C#経験者/20代後半~40代の方活躍中/経験年数不問】/在宅勤務
月給41万~50万円東京都新宿区(西新宿駅)