在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()的方法吗。
您已接近目标:
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;
}