OLEDBプロバイダーを使用してCSVデータを.NETデータテーブルにインポートする
このガイドは、OLEDBプロバイダーを使用してCSVファイルを.NETに効率的にロードする方法を示しています。 簡単ですが、このアプローチは、特に数値データを処理する場合、細部に注意する必要があります。
System.Data.DataTable
OLEDBプロバイダーは、CSVファイルと相互作用するための簡単なメカニズムを提供します。ただし、一般的な落とし穴には、テキストとしての数値の誤解が含まれます。 これを緩和するために、
ファイルを使用しますschema.ini
schema.ini
の重要性 ファイルは、OLEDBプロバイダーに重要な構成を提供し、データインポートプロセスを細かく制御できます。 具体的には、データ型を明示的に定義し、数値フィールドの正しい解釈を確保することができます。
実用的な実装:C#メソッドschema.ini
次のC#コードは、CSVデータをA:にロードするための再利用可能な方法を提供します。
DataTable
メソッドパラメーターと機能:
<code class="language-csharp">using System.Data; using System.Data.OleDb; using System.Globalization; using System.IO; public static DataTable LoadCsvToDataTable(string filePath, bool hasHeaderRow) { string header = hasHeaderRow ? "Yes" : "No"; string pathOnly = Path.GetDirectoryName(filePath); string fileName = Path.GetFileName(filePath); string connectionString = $@"Provider=Microsoft.Jet.OLEDB.4.0;Data Source={pathOnly};Extended Properties=""Text;HDR={header}"""; string sql = $@"SELECT * FROM [{fileName}]"; using (OleDbConnection connection = new OleDbConnection(connectionString)) using (OleDbCommand command = new OleDbCommand(sql, connection)) using (OleDbDataAdapter adapter = new OleDbDataAdapter(command)) { DataTable dataTable = new DataTable(); dataTable.Locale = CultureInfo.CurrentCulture; adapter.Fill(dataTable); return dataTable; } }</code>
:csvファイルへの完全なパス。
filePath
hasHeaderRow
プロパティは、システムの地域設定に基づいて正しいデータ解釈を保証します。
この合理化されたアプローチは、CSVデータを.NETアプリケーションに統合するための堅牢で効率的なソリューションを提供します。 完全なエラー処理戦略のために、潜在的な例外(例えば以上がOLEDBプロバイダーを使用して、CSVファイルを.NETデータテーブルに効率的にロードするにはどうすればよいですか?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。