案例分析:在我進行分頁的時候用到如下SQL語句,
SELECT F_ID,F_Card,F_AvaBegin,F_AvaEnd,F_EditTime from
(select top @End * from
(select top @Start * FROM T_Trade_Card_Usefullife
where F_Card=@F_Card
order by F_EditTime desc)DERIVETBL
order by F_EditTime)A
order by F_EditTime desc
運行顯示如下錯誤:Incorrect syntax near '@End'.
Incorrect syntax near '@Start'.
說明: 執行當前 Web 請求期間,出現未處理的異常。請檢查堆疊追蹤資訊,以瞭解有關該錯誤以及代碼中導致錯誤的出處的詳細資料。
異常詳細資料: System.Data.SqlClient.SqlException: Incorrect syntax near '@End'.
Incorrect syntax near '@Start'.
看來SQL語句有問題,我就一直在尋找,這些參數是有SqlParameter集合提供,如果我直接用數值代替這些參數,則程式能夠正確運行,看來的確出自End和start的錯誤,經過不斷的調試,和大膽的推測,最後在參數加入了括弧,問題解決啦。SQL語句如下:SELECT F_ID,F_Card,F_AvaBegin,F_AvaEnd,F_EditTime from
(select top (@End) * from
(select top (@Start) * FROM T_Trade_Card_Usefullife
where F_Card=@F_Card
order by F_EditTime desc)DERIVETBL
order by F_EditTime)A
order by F_EditTime desc