0

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

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 表列

orderlist_ID order_ID menu_ID order_quantity

menudb 表列

menu_ID menu_name menu_price menu_description menu_category menu_status

4

2 回答 2

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
于 2012-12-22T07:41:11.570 回答
1

之后你错过了空间ol.menu_ID

"ON m.menu_ID = ol.menu_ID "+
于 2012-12-22T07:40:03.927 回答