2014-10-31 59 views
0

我的DataTable接受OdbcDataAdapter的內容時出現問題。在c#MySQL語句中使用LEFT()填充DataTable時出錯Error

public static DataTable queryTable(string pStatement, OdbcConnection pConnection) 
{ 
    DataTable dt = new DataTable(); 
    OdbcDataAdapter da = new OdbcDataAdapter(pStatement, pConnection); 
    da.Fill(dt); 

    return dt; 
} 

當代碼命中da.Fill(dt)時;拋出異常:

OdbcException未被用戶代碼處理。錯誤[42S22]找不到列。

這個SQL語句工作正常:

"SELECT TOP 10 DETAILS AS 'JobReference' FROM AUDIT_SPLIT" 

但是,當我更改語句這樣:

"SELECT TOP 10 Left([DETAILS],9) AS 'JobReference' FROM AUDIT_SPLIT" 

我得到的錯誤。我試過使用括號和引號的變體。

SQL語句是MSAccess和MySQL中的有效語句。

任何人都可以解釋一種使用LEFT()或MID()或SUBSTRING()與OdbcDataAdapter和DataTable的方法。

回答

0

你幾乎有:

public static DataTable queryTable(string pStatement, OdbcConnection pConnection) 
{ 
    DataTable dt = new DataTable(); 
    OdbcDataAdapter da = new OdbcDataAdapter(pStatement, pConnection); 
    var DS = new DataSet(); 
    da.Fill(DS); 
    dt = DS.Tables[0]; 

    return dt; 
} 
+0

感謝您的答覆。不幸的是,'var'類型不適合我,因爲代碼使用.net 2.0,還有其他建議嗎? – 2014-10-31 11:04:22