2012-01-19 13 views
0

データテーブルからcsvファイルを読み込んでいますが、何かが起こっています。csvでデータテーブルに読み込むと、1行にカラム名が付きます

ここ

OpenFileDialog openFileDialog1 = new OpenFileDialog(); 
openFileDialog1.Filter = "CSV Files|*.csv"; 
openFileDialog1.Title = "Select a CSV File"; 
if (openFileDialog1.ShowDialog() == System.Windows.Forms.DialogResult.OK) 
     { 

      string connString = string.Format("Provider=Microsoft.Jet.OLEDB.4.0;Data Source={0};Extended Properties=Text;", System.IO.Path.GetDirectoryName(openFileDialog1.FileName)); 
      string cmdString = string.Format("SELECT * FROM {0}", System.IO.Path.GetFileName(openFileDialog1.FileName)); 
      OleDbDataAdapter dataAdapter = new OleDbDataAdapter(cmdString, connString); 
      DataTable tbl = new DataTable(); 
      dataAdapter.Fill(tbl); 
      TableBuilder b = new TableBuilder(tbl); 
      List<SingleTable> tablelist = b.TableList; 
     } 

を読んで、私はビジュアライザでデータテーブルを見たとき、それは のように見えます![最初の行、代わりの行であることの、列ヘッダーである] [1]

です

は、元のCSVは、この

のように見えます![元CSV] [2]

のDataTableが最初にROに変換されて、なぜ誰かが教えてもらえます列に入れますか?最初の行を保存するために私は何をすべきですか?

答えて

1

ない、これはあなたが原因と必要なものであれば、それはそうしてくださいあなたの質問には何かが欠けています。 しかし、あなたはにあなたの接続文字列を変更することができます。これは、最初の行はヘッダー行ではないこと、接続を教えてくれます

string connString = string.Format("Provider=Microsoft.Jet.OLEDB.4.0;Data Source={0};Extended Properties=Text;HDR=No", System.IO.Path.GetDirectoryName(openFileDialog1.FileName)); 

+0

「インストール可能なISAMを見つけることができませんでした」 – Jeff

+0

これを確認してください:http://support.microsoft.com/kb/209805あるいは、Jetの最新バージョンをインストールする必要があります。http://support.microsoft.com/kb/239114 – gabsferreira

1

ファイルには、ヘッダ

Provider=Microsoft.Jet.OLEDB.4.0;Data Source={0};Extended Properties=Text;HDR=no; 

またはこのSO-回答を見てを持っていませんOLEDB-プロバイダーを伝えるようにしてください:https://stackoverflow.com/a/4598862/284240

+0

「インストール可能なISAMを見つけることができませんでした」 – Jeff

0

通常、余分な "、"がデータに埋め込まれている場合、これはすべてのコンマを別の列として扱います。私は何かをしていたときにこれを起こしました。フィールドのオフセット..また、あなたが作成しているヘッダがありますか?

関連する問題