精品秘无码一区二区三区老师-精品秘一区二三区免费雷安-精品蜜桃秘一区二区三区-精品蜜桃秘一区二区三区粉嫩-精品蜜桃一区二区三区-精品蜜臀国产aⅴ一区二区三区

LOGO OA教程 ERP教程 模切知識交流 PMS教程 CRM教程 開發文檔 其他文檔  
 
網站管理員

C# 中是否支持 Like 和 ln 條件的參數化查詢 ?

admin
2024年11月23日 13:35 本文熱度 660

咨詢區

  • Tom Ritter

.NET 中的參數化查詢我一直都像下面這樣寫。


SqlCommand comm = new SqlCommand(@"
   SELECT * 
   FROM   Products 
   WHERE  Category_ID = @categoryid
"

   conn);
comm.Parameters.Add("@categoryid", SqlDbType.Int);
comm.Parameters["@categoryid"].Value = CategoryID;

但我現在遇到了一個困難,參考如下代碼:


SqlCommand comm = new SqlCommand(@"
   SELECT * 
   FROM   Products 
   WHERE  Category_ID IN (@categoryids) 
      OR  name LIKE '%@name%'
"

   conn);
comm.Parameters.Add("@categoryids", SqlDbType.Int);
comm.Parameters["@categoryids"].Value = CategoryIDs;
comm.Parameters.Add("@name", SqlDbType.NVarChar);
comm.Parameters["@name"].Value = Name;

where條件中:

  1. CategoryIDs 是一個以逗號隔開的字符串 123,456,789 。

  2. Name 是一個字符串,也有可能是包含了特殊字符。

目前的參數化無法查詢,請問正確的語法如何寫?

回答區

  • Paul Turner

這里我逐一回答下你的問題。

1. CategoryIds

這里我假定 CategoryIds 是一個 int 類型的數組,正確的做法是將 int 數組中的所有元素打散,然后逐一 參數化,比如可以在循環中構建一個 @p0 - @pN-1 的有序參數,這里的 N 就是 CategoryIds 數組索引,然后逐一添加到 Command.Parameters 中。

2. Name

對 Name 的模糊匹配,應該放在 Parameters 參數上,而不是 SQL 中。

參考如下代碼:


string Name = "someone";
int[] categoryIDs = new int[] { 2381138161516161617,
                                16181619162019511952,
                                19531954195519722022 };

SqlCommand comm = conn.CreateCommand();

string[] parameters = new string[categoryIDs.Length];

for(int i=0;i<categoryIDs.Length;i++)
{
   parameters[i] = "@p"+i;
   comm.Parameters.AddWithValue(parameters[i], categoryIDs[i]);
}
comm.Parameters.AddWithValue("@name",$"%{Name}%");
comm.CommandText = "SELECT * FROM Products WHERE Category_ID IN (";
comm.CommandText += string.Join(",", parameters) + ")";
comm.CommandText += " OR name LIKE @name";

點評區

這是初學者在用 sql 參數化查詢時經常遇到的問題,有必要摘出來和大家分享下,如果有條件,建議看看 Dapper 的源碼,別人是如何處理此類場景的。


該文章在 2024/11/25 11:07:50 編輯過
關鍵字查詢
相關文章
正在查詢...
點晴ERP是一款針對中小制造業的專業生產管理軟件系統,系統成熟度和易用性得到了國內大量中小企業的青睞。
點晴PMS碼頭管理系統主要針對港口碼頭集裝箱與散貨日常運作、調度、堆場、車隊、財務費用、相關報表等業務管理,結合碼頭的業務特點,圍繞調度、堆場作業而開發的。集技術的先進性、管理的有效性于一體,是物流碼頭及其他港口類企業的高效ERP管理信息系統。
點晴WMS倉儲管理系統提供了貨物產品管理,銷售管理,采購管理,倉儲管理,倉庫管理,保質期管理,貨位管理,庫位管理,生產管理,WMS管理系統,標簽打印,條形碼,二維碼管理,批號管理軟件。
點晴免費OA是一款軟件和通用服務都免費,不限功能、不限時間、不限用戶的免費OA協同辦公管理系統。
Copyright 2010-2025 ClickSun All Rights Reserved

主站蜘蛛池模板: 国产毛片久久久久久国产毛片 | 亚洲另类性爱视频 | 在线一区播放 | 无码精品尤物一区二区三区 | 亚洲av永久无码精品一区二区 | 欧美日韩精品一级黄色片 | 亚洲av不卡电影在线网址最新 | 日韩a无v码手机在线播放 | 亚洲精品国产永久无损音乐 | 国产黄在线观看免费观看不卡 | 亚洲综合国产在不卡在线首映 | 在线看片免费人成视频在线影院 | 亚洲国产福利精品一区二 | 久久久久国产精品熟女影院 | 7799在線視頻免費看 | 日韩娇小性hd | 久久亚洲精品国产露脸 | 亚洲国产成人精品无码区6080 | 亚洲av永久无码精品尤物 | 无码人妻精品一区二区三区66 | 天美传媒新剧国产资源 | 专区国产精品第一页 | 囯精品人妻无码一区二区三区99 | 内射中出日韩无国产剧情 | 亚洲伊人色欲综合网 | 久久影院一区二区三区 | 熟女精品视频一区二区三区 | 欧美日产国产精品日产 | 国产免码va在线观看免费 | 国产日韩aⅴ无码一区二区 国产日产中文在线观看 | 亚洲av无码乱码在线观看代蜜桃国产videos跪求欧美精品白 | 摸进她的内裤里疯狂揉她动图视频 | 精品国产美女av久久久久 | 92看片淫黄大片一级 | 青热久思思 | 久久久久国产视频 | 亚洲最大av网站在线观看 | 亚洲av无码成人精品区在线观看 | 欧美日韩人妻精品一区二区三区 | 99久久婷婷国产综合精品电影 | 成人毛片视频在线 |