簡體   English   中英

在 String.format 中插入撇號,C#

[英]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.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM