簡體   English   中英

Microsoft.Jet.OLEDB.4.0讀取csv文件的奇怪問題

[英]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,1CDTExpiry,a

任何人都知道為什么會發生這種情況,因為我正在使用此代碼從csv文件中批量加載數據,而我不想總是先檢查文件中的這一行代碼。

發射

我相信Microsoft.Jet庫中有一個擴展屬性,它允許這樣的事情...。我記得幾年前有一個類似的問題,我想我已經用這種方法解決了。 對擴展屬性進行一些Google搜索,看看是否可以找到一個可以幫助您的字段接受數字的屬性

暫無
暫無

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

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