亚洲在线久爱草,狠狠天天香蕉网,天天搞日日干久草,伊人亚洲日本欧美

為了賬號安全,請及時綁定郵箱和手機立即綁定
已解決430363個問題,去搜搜看,總會有你想問的

在 C# 中的字符串中的每個值中放置單引號

在 C# 中的字符串中的每個值中放置單引號

C#
天涯盡頭無女友 2022-12-31 11:27:26
我試圖在用逗號分隔的字符串中的每個值中加上單引號,以將其包含在 SQL 查詢中(例如。"AND STAT IN ('11', '12')如果您有任何想法,請幫助我。樣本數據:string sStatus = "10,20,30,40";我已經嘗試拆分每個值。if (!String.IsNullOrEmpty(sStatus))        {            string[] sStatList = sStatus.Split(',');            foreach (string p in sStatList)            {            }            sFilter = String.Format(" AND STAT IN ({0})", sStatList);        }
查看完整描述

4 回答

?
幕布斯7119047

TA貢獻1794條經驗 獲得超8個贊

你可以使用Select()。

string[] sStatList = sStatus.Split(',');
var res = string.Join(",", sStatList.Select(s => $"'{s}'"));

這需要using System.Linq;。


查看完整回答
反對 回復 2022-12-31
?
紫衣仙女

TA貢獻1839條經驗 獲得超15個贊

試試這個:


        string[] sStatList = sStatus.Split(',');

        string sFilter= "";

            foreach (string p in sStatList)

            {

                sFilter = sFilter+ ("'" + p + "',");

            }

        if(sFilter.EndsWith(","))

        {

            sFilter = sFilter.Substring(0,sFilter.Length-1);

        }

        sFilter = " AND STAT IN (" + sFilter + ")";


查看完整回答
反對 回復 2022-12-31
?
守候你守候我

TA貢獻1802條經驗 獲得超10個贊

您可以使用string.Join這樣的:


var status = "10,20,30,40";


if (!string.IsNullOrEmpty(status))

{

    var sStatList = status.Split(',');


    filter = $"'{string.Join("','", sStatList)}'";

}

您的另一個選擇是使用string.Replace:


var status = "10,20,30,40";

filter = $"'{status.Replace(",","','")}'";

無論哪種方式,您都需要驗證輸入以避免SQL 注入??紤]以下:


status = "10,20,30');/*,*/ DROP TABLE Users;//";

例如Dapper直接支持這個:}


var sql = "SELECT * FROM table WHERE Id IN @ids"

var results = connection.Query(sql, status.Split(','));

并且有替代的 orms 可以處理參數化。


作為旁注:避免在 C# 中使用匈牙利表示法,因為微軟也建議. 您使用前綴指定變量類型的匈牙利表示法是無用的信息并且會增加噪音,尤其是 VS 和 VS Code 無論如何都會告訴您類型。


查看完整回答
反對 回復 2022-12-31
?
侃侃無極

TA貢獻2051條經驗 獲得超10個贊

@oika 的回答是在正確的軌道上,但它不太適合你正在嘗試做的事情。然而Select這里的答案是......雖然這樣:


您需要添加對以下內容的引用Linq:


using System.Linq;

然后


var sStatuses = sStatus.Split(',');


var parsedsStatuses = string.Join(",", sStatuses.Select(x => $"'{x}'"));

var sql = $"AND STAT IN ({ parsedsStatuses })";

當然,您在執行此操作時要小心,因為它會為SQL Injection.


查看完整回答
反對 回復 2022-12-31
  • 4 回答
  • 0 關注
  • 399 瀏覽

添加回答

舉報

0/150
提交
取消
微信客服

購課補貼
聯系客服咨詢優惠詳情

幫助反饋 APP下載

慕課網APP
您的移動學習伙伴

公眾號

掃描二維碼
關注慕課網微信公眾號