差分
このページの2つのバージョン間の差分を表示します。
| 両方とも前のリビジョン 前のリビジョン 次のリビジョン | 前のリビジョン | ||
| dotnet:dataset [2009/01/21 16:51] – nakayama | dotnet:dataset [2019/05/18 02:23] (現在) – 外部編集 非ログインユーザー | ||
|---|---|---|---|
| 行 1: | 行 1: | ||
| ====== DataSet クラス (System.Data) ====== | ====== DataSet クラス (System.Data) ====== | ||
| + | ===== XMLの読み込み/ | ||
| + | [C#] | ||
| + | <code csharp> | ||
| + | // 読み込み対象ファイルパス | ||
| + | string fileName = @" | ||
| + | // XMLファイルの読み込み | ||
| + | xmlDataSet.ReadXml(fileName); | ||
| + | </ | ||
| + | |||
| + | [C#] | ||
| + | <code csharp> | ||
| + | // 書き込み対象ファイルパス | ||
| + | string fileName = @" | ||
| + | // XMLファイルの書き込み | ||
| + | xmlDataSet.WriteXml(fileName); | ||
| + | </ | ||
| + | |||
| + | ===== 未知のXML形式から型付データセット用にXSDを生成 ===== | ||
| + | [C#] | ||
| + | <code csharp> | ||
| + | // 未知のXML形式ファイルパス | ||
| + | string xmlFileName = @" | ||
| + | // XSDファイルパス | ||
| + | string xsdFileName = @" | ||
| + | // XMLファイルの読み込み | ||
| + | xmlDataSet.ReadXml(xmlFileName ); | ||
| + | // XSDファイルの書き込み | ||
| + | xmlDataSet.WriteXmlSchema(xsdFileName); | ||
| + | </ | ||
| + | XSDファイルは Visual Studio にドラッグアンドドロップすることで型付データセットを生成できる。\\ | ||
| + | また、型付データセット内の余分な DataTable を削除して、型付データセットを利用して ReadXml() を行うことで、余分なテーブルデータをスキップしてXMLファイルを読み込むことができる。 | ||
| + | |||
| ===== DataTableのソート ===== | ===== DataTableのソート ===== | ||
| + | DataTableのソートは、DataViewのSort機能を利用して行うことができる。しかし、型付DataSetの場合は、DataViewによってソートを行いToTable()メソッドで結果を得ようとすると、ToTable()メソッドはDataTable型を返却するため、ソートを行った以降の処理で型付DataSetによって自動生成されたコードの恩恵を受けられなくなってしまう。\\ | ||
| + | \\ | ||
| + | ここでは、ジェネリックメソッドを実装して、型付DataSetのDataTableを型付のままソートする方法を紹介する。\\ | ||
| + | \\ | ||
| [VB] | [VB] | ||
| <code vbnet> | <code vbnet> | ||
| - | Public Function SortTable(Of T As DataTable)( _ | + | Imports System |
| - | ByVal source As T, ByVal expression As String) As T | + | Imports System.Data |
| + | |||
| + | Module SampleAppVB | ||
| + | | ||
| + | ByVal source As T, ByVal expression As String) As T | ||
| - | | + | |
| - | Dim dest As T = CType(source.Clone(), | + | Dim dest As T = CType(source.Clone(), |
| - | | + | |
| - | Dim dv As DataView = New DataView(source) | + | Dim dv As DataView = New DataView(source) |
| - | dv.Sort = expression | + | dv.Sort = expression |
| - | | + | |
| - | For Each drv As DataRowView In dv | + | For Each drv As DataRowView In dv |
| - | dest.ImportRow(drv.Row) | + | dest.ImportRow(drv.Row) |
| - | Next | + | Next |
| - | | + | |
| - | End Function | + | End Function |
| + | End Module | ||
| </ | </ | ||
| [C#] | [C#] | ||
| <code csharp> | <code csharp> | ||
| + | using System; | ||
| using System.Data; | using System.Data; | ||
| 行 52: | 行 94: | ||
| [C++] | [C++] | ||
| <code cpp> | <code cpp> | ||
| + | using namespace System; | ||
| using namespace System:: | using namespace System:: | ||
| 行 73: | 行 116: | ||
| } | } | ||
| </ | </ | ||
| + | |||