1

c# を使用して Windows アプリケーションの開発に取り組んでいます。ディレクトリから csv ファイルを読み取り、SQL サーバー データベース テーブルにインポートしたいと考えています。ファイルの内容が均一であれば、csvファイルのデータを正常に読み取ってデータベーステーブルにインポートできます。しかし、不変形式のファイル データを挿入することはできません。実際には、csv ファイルの区切り文字はタブ ('\t') であり、個々のフィールドを取得した後、dcc のようなデータを含むフィールドがあります。

Name
----
xxx
xxx yyy
xx yy zz 

xxx、yyy、xx、yy、zzなどのデータを取得したため、挿入が問題になります。データベーステーブルにデータを均一に挿入するにはどうすればよいですか。

4

3 に答える 3

0

とても簡単です。

ファイルを1行ずつ読むだけです。MSDN の例:

方法: ファイルからテキストを読み取る

行ごとに、タブを区切り文字として String.Split メソッドを使用します。メソッドのドキュメントとサンプルは次のとおりです。

String.Split メソッド (Char[]、StringSplitOptions)

次に、データを挿入します。

于 2012-06-14T16:41:39.330 に答える
0

私の理解が正しければ、コードがタブではなくスペースで分割されていることが問題です。ファイルから行を読み取った場合、必要なことは次のとおりです。

string[] fileLines;//from the file
foreach(string line in fileLines)
{
    string[] lineParts=line.Split(new char[]{'\t'});
}

そして、それぞれで好きなことをしますlineParts。は\tタブ文字です。

データベース ファイルへの行の書き込みについても質問している場合は、インポート エクスポート ウィザードを使用してタブ区切りのファイルを読み取ることができます (Sql Server Mgmt Studio を使用していると仮定しますが、同等のファイルがあると確信しています)。他のデータベース管理ソフトウェアを使用してインポートする方法)。

于 2013-10-10T02:28:10.440 に答える
0

CSV (または TSV) 値に区切り文字が含まれている場合は、引用符で囲む必要があります。詳細については、仕様を参照してください: https://www.rfc-editor.org/rfc/rfc4180#page-3

したがって、入力ファイルの形式が正しくありません。入力プロバイダーにこの問題を解決するよう説得できる場合は、それが問題を解決する最善の方法です。そうでない場合、他の解決策には次のようなものがあります。

  • ファイルを視覚的に検査および編集してエラーを修正する、または
  • パーサー プログラムを作成して、実際の区切り文字がどこにあるかを正しく「推測」できるように、データの期待値について十分な知識を得ます。
于 2012-06-14T18:05:34.720 に答える