[英]INNER JOIN with Where condition not working
我在C#ASP.NET MVC中有一個SQL查詢,它在沒有WHERE
條件的情況下也能很好地工作,但是在WHERE
條件下,它是行不通的。
這是SQL語句:
string strSQL = "SELECT u.USERID, u.NAME, io.CHECKTIME, io.CHECKTYPE, io.SENSORID
FROM USERINFO u
INNER JOIN CHECKINOUT io ON u.USERID = io.USERID
WHERE u.NAME = " + conditionSearch.NAME;
使用conditionSearch.NAME
是視圖中的變量,我檢查了一下,可以搜索需要的值。
能否請你告訴我什么是錯的這個WHERE
條件? 謝謝!
此處的直接解決方法是將名稱放在WHERE
子句中的單引號內,以創建字符串文字:
string strSQL = "SELECT u.USERID, u.NAME, io.CHECKTIME, io.CHECKTYPE, io.SENSORID
FROM USERINFO u INNER JOIN CHECKINOUT io ON u.USERID = io.USERID
WHERE u.NAME = '" + conditionSearch.NAME + "'";
但是 ,直接連接以形成SQL查詢字符串通常是嚴重的壞習慣。 更好的方法是使用帶名稱的占位符的預准備語句。 也就是說,使用如下查詢:
SELECT u.USERID, u.NAME, io.CHECKTIME, io.CHECKTYPE, io.SENSORID
FROM USERINFO u
INNER JOIN CHECKINOUT io
ON u.USERID = io.USERID
WHERE u.NAME = ?;
然后,讓您的數據庫擔心如何正確綁定name參數。
此處的直接解決方法是將名稱放在WHERE子句中的單引號內,以創建字符串文字:
蒂姆,您好,謝謝答復。 我嘗試使用db中的單引號精確命名,但結果仍返回null。
哦,但是我嘗試了您的解決方案('“ + conditionSearch.NAME +”'“),它運行良好,非常感謝!
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.