0

メニュー項目名を取得するために、別のテーブルを INNER JOIN して、1 つのテーブルのすべての (*) データ列を選択しようとしています。私のクエリを見てください

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 に答える