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