![](/img/trans.png)
[英]Not able to read csv file properly using Microsoft.Jet.OLEDB.4.0 provider
[英]Microsoft.Jet.OLEDB.4.0 weird issue reading csv file
我在使用c#讀取.csv文件時遇到了一個奇怪的問題。 以下是文件內容:
**ColumnName, Column Value**
Bestemming, aaa.asp
BuEn_SubSystem, B
BusinessListActive, FALSE
cancreatelogin, 0
CDTAccess, Y
CDTAssessmentNo, 4172
CDTAssessRO, N
CDTCntComp, 0
CDTCntOnf, 0
***CDTExpiry, 1***
我正在使用以下代碼來讀取文件:
using System;
using System.Data;
using System.IO; //not used by default
using System.Data.OleDb; //not used by default
class CSVParser
{
public static DataTable ParseCSV(string path)
{
if (!File.Exists(path))
return null;
string full = Path.GetFullPath(path);
string file = Path.GetFileName(full);
string dir = Path.GetDirectoryName(full);
//create the "database" connection string
string connString = "Provider=Microsoft.Jet.OLEDB.4.0;"
+ "Data Source=\"" + dir + "\\\";"
+ "Extended Properties=\"text;HDR=Yes;FMT=Delimited\"";
//create the database query
string query = "SELECT * FROM " + "[" + file + "]";
//create a DataTable to hold the query results
DataTable dTable = new DataTable();
//create an OleDbDataAdapter to execute the query
OleDbDataAdapter dAdapter = new OleDbDataAdapter(query, connString);
try
{
//fill the DataTable
dAdapter.Fill(dTable);
}
catch (InvalidOperationException /*e*/)
{ }
dAdapter.Dispose();
return dTable;
}
}
由於某些原因, CDTExpiry字段出現問題。 我所要做的就是僅將該字段的數字更改為非數字,並且效果很好!! 例如CDTExpiry,1到CDTExpiry,a 。
任何人都知道為什么會發生這種情況,因為我正在使用此代碼從csv文件中批量加載數據,而我不想總是先檢查文件中的這一行代碼。
發射
我相信Microsoft.Jet庫中有一個擴展屬性,它允許這樣的事情...。我記得幾年前有一個類似的問題,我想我已經用這種方法解決了。 對擴展屬性進行一些Google搜索,看看是否可以找到一個可以幫助您的字段接受數字的屬性
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.