使用C #MySQL语句中的LEFT()在OdbcDataAdapter中填充DataTable时出错

时间:2014-10-31 10:24:04

标签: c# mysql datatable odbc

我的DataTable接受OdbcDataAdapter的内容时遇到问题。

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未被用户代码处理。 ERROR [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中的有效语句。

任何人都可以解释一下在OdbcDataAdapter和DataTable中使用LEFT()或MID()或SUBSTRING()的方法。

1 个答案:

答案 0 :(得分: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;
}