2012-01-19 12 views
0

我從數據表讀取csv文件,發生了一些事情。csv讀入數據表使一行成爲列名

這裏的閱讀

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]

誰能告訴我,爲什麼數據表上把第一RO w成列?我該怎麼做才能保持第一排?

回答

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

嘗試告訴OLEDB提供商,該文件沒有頭部

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

或者看看這個所謂的答案:https://stackoverflow.com/a/4598862/284240

+0

獲取「找不到可安裝的ISAM」。 – Jeff

0

通常情況下,如果你在數據中嵌入了額外的「,」,這將把每個逗號作爲一個單獨的列,當我做同樣的事情時,我發生了這種情況..我必須檢查導致字段偏移量..還有你正在創建的標題..?