我的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()的方法。
答案 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;
}