[英]insert apostrophe in String.format, C#
我有這個string.format
問題。 我正在嘗試將'
放在字符串中。
這就是我到目前為止所擁有的。
string.Format(@"SELECT UserID FROM intListAccess IA
JOIN database.[fnc_CommaListDelimeter_to_tableInt](\'{0}\':, N',') I ON i.ID = IA.IntList
WHERE IA.DateTimeStamp >= CAST(GETDATE() AS DATE) AND IA.UserID = {1} AND IA.AppId = {2}",
string.Join(",", IntList), UserID, AppId);
fnc_CommaListDelimeter
作用是取一個字符串,其中整數由逗號分隔符分隔,如'122344,524572,126344,847858'
並將其變成一個表,如
| id |
|122344|
|524572|
|126344|
|847858|
每次我運行代碼時,它都會發送上面的函數,但不會在傳遞給fnc_CommaListDelimeter
的列表周圍加上單引號
我試着然后把\\'
放在它周圍,所以它看起來像這樣\\'{0}\\'
但是然后 vstudio 拋出異常說 sqlException invalid syntax 在'122344,524572,126344,847858\\'
所以當我刪除尾隨\\
它拋出相同錯誤但沒有尾隨\\
。 有沒有辦法在 vstudio 中使用 String.Format 來做到這一點?
所以,我想首先說你這樣做是錯誤的。 您應該使用存儲過程從應用程序層訪問數據庫。 或者至少是參數化查詢。 您當前的實施方式不靈活,容易受到若干安全問題的影響。 你絕對應該接受評論中給你的建議。
話雖如此,您的代碼中似乎有一個不需要的分號導致問題,並且當您使用字符串文字語法時不需要反斜杠。 嘗試這個:
string.Format(@"SELECT UserID FROM intListAccess IA
JOIN database.[fnc_CommaListDelimeter_to_tableInt]('{0}', N',') I ON i.ID = IA.IntList
WHERE IA.DateTimeStamp >= CAST(GETDATE() AS DATE) AND IA.UserID = {1} AND IA.AppId = {2}",
string.Join(",", IntList), UserID, AppId);
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.