私は映画館のためのC#プログラムを書いています。ムービーが完全に予約されている場合、プログラムはユーザーを待機リストに移動します。誰かが映画の予約をキャンセルした場合、待機リストは自動的に予約リストに移動されますTOPを使用した文の挿入と削除
私は完全なものであれば待機リストに移動するための部分をコーディングしています。 私は、待機中のリストからトップユーザーを選択して予約リストに移動するために、この部分に取り残されています。そして待機リストからその人のレコードを削除してください
これは私のsqlが待機から予約に移行するためのものです。
string myQry = "INSERT INTO reserve (ID,M_ID,R_Date) VALUES (SELECT TOP 1 (ID,M_ID,R_Date) FROM Wait WHERE M_ID=)" + mID+ " (ORDER BY R_Date ASC)";
この人はこの人を削除します。
string myQry= "DELETE FROM Wait WHERE M_ID IN SELECT TOP 1 M_ID FROM Wait WHERE M_ID =" + mid;
私の他の機能は完全に動作し、プログラムのコンパイルと実行中にエラーは発生しません。だから、私のSQLには問題があるはずだと思います。ありがとうございました。列名の周り
INSERT INTO reserve (ID,M_ID,R_Date)
SELECT TOP 1 ID, M_ID, R_Date
FROM Wait WHERE M_ID = . . .;
括弧どちらが間違っている:私はあなたが意図し考える
INSERT INTO reserve (ID,M_ID,R_Date)
VALUES (SELECT TOP 1 (ID,M_ID,R_Date) FROM Wait WHERE M_ID= . . .
:これは正しい構文ではありません
... WHERE M_ID = " + mid + " ORDER BY R_Date ASC)";
警告! SQLインジェクションリスクアサート! http://bobby-tables.com/ –
'mID'は何らかの種類の整数であると仮定しますか?もしそうでなければ、これはSQLインジェクションかもしれません...トランザクションを使用しているため、2つのステートメントがセパレートでは発生しませんか? – ebyrob