ERROR [HY000] [Microsoft]指定字段'ono'可以引用SQL语句的FROM子句中列
本文关键字:SQL 语句 FROM 子句 引用 字段 HY000 ERROR Microsoft ono | 更新日期: 2023-09-27 18:16:29
有两个表cscorder &cscorder_item。"cscorder"有字段"no, no,tname, date,amt"&'cscorder_item'有字段"ono,name,age, gender "。我想连接这两个表,并在datagridview中显示以下详细信息。所以我使用command:
"select a.ono,a.tno,a.tname,a.tdate,a.amount,b.name,b.age,b.sex from cscorder a,cscorder_item b where ono=" + textBox6.Text + "";
然而,它显示错误'指定的字段'ono'可以引用多个表'。请给我建议一个合适的命令。任何帮助都将不胜感激。我对它了解不多。所以尽量简单地解释。
@Damien_The_Unbeliever在评论中解释了错误消息的原因。
为了得到只有一个ono
值的结果(我假设是订单号),您需要通过ono
值连接两个表。关于SQL中的join
试试这个查询:
Dim query as New StringBuilder()
With query
.AppendLine("SELECT ord.ono AS OrderOno")
.AppendLine(", ord.tno")
.AppendLine(", ord.tname")
.AppendLine(", ord.tdate")
.AppendLine(", ord.amount")
.AppendLine(", itm.name")
.AppendLine(", itm.age")
.AppendLine(", itm.sex")
.AppendLine("FROM cscorder ord")
.AppendLine("LEFT JOIN cscorder_item itm ON itm.ono = ord.ono")
.Append("WHERE ord.ono = ")
.AppendLine(textBox6.Text)
End With
但是要认真考虑在查询中使用SqlParameter
。它在很多方面都有帮助,不仅仅是sql注入。一些使用参数的例子:
从MSDN
从Stackoverflow
string query = string.Format("select a.ono,a.tno,a.tname,a.tdate,a.amount,b.name,b.age,b.sex from cscorder a,cscorder_item b where a.ono={0}",textBox6.Text);