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

本文关键字:OdbcDataAdapter 填充 DataTable 出错 LEFT 语句 c#MySQL | 更新日期: 2023-09-27 18:28:38

我的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。错误[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()的方法吗。

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

您已接近目标:

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;
}