簡體   English   中英

OLEDB讀取CSV文件僅返回第一列

[英]OLEDB reading CSV file returns first column only

我正在嘗試讀取管道分隔的文本文件。 第一行是

"BewerberID"|"Druck"|"Druckdatum"|"HistorieID"|"Bearbeiter"|"BewZuBewGruppeID"|"Bemerkung"
"12586"|"EinladungOFD.dot                                  "|"03.02.2003 00:00:00"|"162"|"Petersen  "|"20295"|"ungültig"
"12807"|"EinladungOFD.dot                                  "|"27.02.2003 00:00:00"|"258"|"Petersen  "|"20617"|""
"12807"|"EinladungOFD.dot                                  "|"28.02.2003 00:00:00"|"270"|"Petersen  "|"20617"|""

以下是我正在使用的LINQpad腳本。 它運行完美,但是僅從第一個列返回值。

string mySelectQuery = "SELECT * FROM Historie.CSV";
OleDbConnection connection = new OleDbConnection
("Provider=Microsoft.Jet.OLEDB.4.0;Data Source=C:\\;" + 
   "Extended Properties=\"text;HDR=YES;IMEX=1;FMT=Delimited(|)\"");
connection.Open();
OleDbCommand cmd = connection.CreateCommand();
cmd.CommandText = mySelectQuery;
OleDbDataReader rdr = cmd.ExecuteReader();
rdr.Dump();
rdr.Close();
connection.Close();

這僅返回第一列。

BewerberID 
12586 
12807 
12807

我嘗試切換到列名SELECT BewerberID, Druck FROM Historie.CSV但遇到錯誤,指出“至少一個參數沒有值”。 (順便說一句: SELECT BewerberID FROM Historie.CSV確實起作用,並返回與*相同)

我該怎么做才能使所有列退回?

在與Historie.CSV相同的文件夾中創建一個名為schema.ini的文件(在本例中為C:\\ )。 該文件應具有以下內容:

[Historie.csv]
Format=Delimited(|)
ColNameHeader=True

然后嘗試重新運行代碼。

一些鏈接:

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM