有两个表cscorder& cscorder_item。 'cscorder'有字段“ono,tno,tname,tdate,amt'和'cscorder_item'有字段”ono,name,age,sex“。我想连接这两个表并在datagridview中显示以下细节。所以我used命令:
"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'可能引用多个表'。 请建议我适当的命令。任何帮助将不胜感激。我对此并不了解。所以尽可能简单地解释一下。
答案 0 :(得分:0)
@Damien_The_Unbeliever在评论中解释了错误消息的原因
要获得ono
(订单号i假设)的一个值的结果,您需要按ono
值连接两个表。 About Joins in SQL
试试这个问题:
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注入。使用参数的一些例子:
From MSDN
From Stackoverflow
答案 1 :(得分:-2)
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);
将查询字符串作为您的查询。