簡體   English   中英

IErrorInfo.GetDescription 因 E_FAIL(0x80004005).System.Data 而失敗,而數據適配器 Fill()

[英]IErrorInfo.GetDescription failed with E_FAIL(0x80004005).System.Data while data adapter Fill()

我正在嘗試從 CSV 文件中獲取數據,通過使用 fill() 方法我得到了一個異常 idk 為什么它出現,請查看代碼並建議樂觀的答案。注意,如果參數“s”沒有任何空間意味着它可以工作美好的。 如果它有空間意味着如何克服它,不要建議臨時重命名等等。

/// <summary>
/// Import Function For CSV Delimeted File
/// </summary>
/// <param name="s">File Name</param>
private DataTable Import4csv(string s)
{
    string file = Path.GetFileName(s);
    string dir = Path.GetDirectoryName(s);
    string sConnection = "Provider=Microsoft.Jet.OLEDB.4.0;"
                             + "Data Source=\"" + dir + "\\\";"
                             + "Extended Properties=\"text;HDR=YES;FMT=Delimited\"";
    try
    {
        var objConn = new OleDbConnection(sConnection);
        objConn.Open();
        var ds = new DataSet();
        var da = new OleDbDataAdapter("SELECT * FROM " + file, sConnection);
        da.Fill(ds);        // getting exception on this line.
        objConn.Close();
        return ds.Tables[0];
    }
    catch (Exception ex)
    {
        Trace.WriteLine(ex.Message + ex.Source);
        return null;
    }
}
var da = new OleDbDataAdapter("SELECT * FROM `" + file + "`", sConnection);

在波浪號鍵附近..

我遇到了同樣的問題,但能夠通過將可疑詞括在方括號中來克服它。

就我而言,它是我在“Where”條件下使用的字段名稱,即;

select * from tblDetail where [Section] = 'Operations'

在我的情況下,用*替換查詢中的整個字段名稱解決了這個問題。

暫無
暫無

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

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