例如現有文件內容如下:
-----------文件內容開始--------
Column1,Column2
00001234,00005678
-----------文件內容結束--------
讀得的結果是<1234, 5678>,即它“智能”地認為我里面的內容為數字;而我希望它把內容當文本來處理,期望的結果是<00001234,00005678>,請問有沒有什么方法可以直接用?還是必須得用StreamReader自己去解析?謝謝J
考慮到對用戶給出的文件不作過多的要求,這里沒有強制要求他們必須在內容前面加單引號('),所以文件內容如上,是沒有單引號的。
附:Ado.Net讀取CSV的代碼(外面通過reader[index].ToString()的方式來讀得數據;讀取結果如上所述,我希望的預期是它把所有內容都當作文本讀取,而不是數字)
1
OleDbConnection connection = new OleDbConnection();
2
//HDR=YES:標識第一行為標題行;
3
string strConn = string.Format("Provider=Microsoft.Jet.OLEDB.4.0;Data Source={0};Extended Properties='Text;HDR=YES'",
4
FileHelper.GetPath(fileFullName));
5
connection.ConnectionString = strConn;
6
//CSV格式的Excel,以不包含路徑和后綴名的文件名作為Sheet的名稱
7
string strExcel = string.Format("select * from {0}", FileHelper.GetFileNameWithExtension(fileFullName));
8
OleDbCommand cmd = new OleDbCommand(strExcel, connection);
9
connection.Open();
10
OleDbDataReader reader = cmd.ExecuteReader(CommandBehavior.CloseConnection);
11
return reader;
12
OleDbConnection connection = new OleDbConnection();2
//HDR=YES:標識第一行為標題行;3
string strConn = string.Format("Provider=Microsoft.Jet.OLEDB.4.0;Data Source={0};Extended Properties='Text;HDR=YES'", 4
FileHelper.GetPath(fileFullName));5
connection.ConnectionString = strConn;6
//CSV格式的Excel,以不包含路徑和后綴名的文件名作為Sheet的名稱7
string strExcel = string.Format("select * from {0}", FileHelper.GetFileNameWithExtension(fileFullName));8
OleDbCommand cmd = new OleDbCommand(strExcel, connection);9
connection.Open();10
OleDbDataReader reader = cmd.ExecuteReader(CommandBehavior.CloseConnection);11
return reader;12

浙公網安備 33010602011771號