如何解决 from 子句中的语法错误
本文关键字:子句 语法 错误 from 何解决 解决 | 更新日期: 2023-09-27 18:25:58
string query = "select a.Name,a.Add from GroupDetails a join General b on a.ID=b.Id where b.AccCode='" + label1.text + "'";
OleDbCommand cmd = new OleDbCommand(query, con);
OleDbDataAdapter daName = new OleDbDataAdapter(cmd);
OleDbDataReader dr = cmd.ExecuteReader();
while (dr.Read())
{
txtName.Text = dr["a.Name"].ToString();
txtAdd.Text = dr["a.Add"].ToString();
}
显示异常
FROM 子句中的语法错误
如果它明确提到from
,那么我的猜测是SQL后端不支持别名(a
(。但是,存在多个问题:
- 别名
- SQL 串联
- 不必要的适配器
- 正在读取不正确的列
我建议尝试:
const string query = "select GroupDetails.Name,GroupDetails.Add from GroupDetails join General on GroupDetails.ID=General.Id where General.AccCode=@accCode";
using(var cmd = new OleDbCommand(query, con))
{
cmd.Parameters.AddWithValue("accCode", label1.text);
using(var dr = cmd.ExecuteReader())
{
txtName.Text = (string)dr["Name"];
txtAdd.Text = (string)dr["Add"];
}
}
我确定您的查询不SQL Server
,因为它在 SQL Server 查询窗口中工作正常。它可以是Access SQL
或My SQL
,并且您必须明确指定left join
、right join
或inner join
。我认为在这种情况下您希望inner join
:
string query = "SELECT a.Name,a.Add FROM GroupDetails a INNER JOIN General b ON a.ID=b.Id WHERE b.AccCode='" + label1.text + "'";
Add 是 SQL 的关键字,你可以 [] 字段,如 a.[Add]
string query = "select a.Name,a.[Add] from GroupDetails a join General b on a.ID=b.Id where b.AccCode='" + label1.text + "'";