从INNER JOINED表中检索列数据?

时间:2012-12-22 07:37:39

标签: c# mysql

我试图在一个表上选择所有(*)数据列并伴随INNER JOIN另一个表来获取菜单项名称。请查看我的查询

string query = "SELECT ol.*, m.menu_name " +
                "FROM orderlist ol " +
                "INNER JOIN menudb m " +
                "ON m.menu_ID = ol.menu_ID " +
                "WHERE ol.order_ID = @orderID";

使用m.menu_name

检索时,我似乎无法获得dr["menu_name"].ToString()

任何想法为什么?

订单列表列

orderlist_ID order_ID menu_ID order_quantity

menudb表格列

menu_ID menu_name menu_price menu_description menu_category menu_status

2 个答案:

答案 0 :(得分:2)

您的查询中存在许多问题。

首先,由于关键字之间缺少空格而导致语法错误。

"ON m.menu_ID = ol.menu_ID" +     // << HERE
"WHERE ol.order_ID = '@orderID'";

你应该在ol.menu_ID

之后添加一个额外的空格
"ON m.menu_ID = ol.menu_ID " +
"WHERE ol.order_ID = '@orderID'";

第二,如果参数化了查询,则不应使用单引号包装参数。这导致成为字符串而不再是参数。

"WHERE ol.order_ID = @orderID"; // remove single quote

答案 1 :(得分:1)

你在ol.menu_ID之后错过了空间。

"ON m.menu_ID = ol.menu_ID "+