我想請問遇到這問題該如何處理呢?
以下是我的程式碼
var sSql = @"SELECT 'Tenno', NO
FROM TABLEA
WHERE NO NOT IN (SELECT LNO FROM TABLEB WHERE LID= 'Tenno' )
AND NO in (:NO)";
var ExecuteResult = await conn.ExecuteAsync(sSql, new
{
NO = NO
});
其中參數NO是這樣顯示
這樣執行出來他直接顯示ORA-01722這個錯誤
可是我再PLSQL裡執行卻沒問題
SELECT 'Tenno', NO
FROM TABLEA
WHERE NO NOT IN (SELECT LNO FROM TABLEB WHERE LID= 'Tenno' )
AND NO in ('2','3')
我是用C# + DAPPER 然後DB是ORACLE
我可以請問這個該如何調整呢?
更新,已解決
改為"2,3"並且字串切割然後直接傳進去即可
順便想請問一下,有沒有人做過WPF 呼叫API然後使用DAPPER
我有個表單裡面顯示所有的TABLE,我希望點選某個TABLE的名稱
然後會顯示該TABLE的資料,目前再想DAPPER該回傳什麼
然後可以讓我WPF解讀呢?
不要直接將變數值插入 SQL 查詢中,因為這可能會導致 SQL 注入攻擊。改為使用參數化查詢以防止這種風險。
var sSql = @"
SELECT 'Tenno', NO
FROM TABLEA
WHERE NO NOT IN (SELECT LNO FROM TABLEB WHERE LID = @LID)
AND NO IN @NOList";
var ExecuteResult = await conn.ExecuteAsync(sSql, new
{
LID = "Tenno",
NOList = new[] { NO }
});