我想傳遞一個數組到一個方法,然後返回一個字符串,我可以使用SQL的WHERE子句。我有以下,它工作得很好。但是有更好的方法嗎?我正在尋找兩個結果之一;有沒有更好的方法來將數組拆分爲字符串
WHERE (ColumnName IN (12, 34, 56, 78, 90))
WHERE (ColumnName IN ('12', '34', '56', '78', '90'))
public static string setInSearchFilter(string psSearchFilter, string psColumnName,
string[] paObjectValues, bool pbIsString)
{
string lsDelimiter = "'", lsRetVal = string.Empty, lsObjectValues = string.Empty;
if (!pbIsString)
{
lsDelimiter = string.Empty;
}
if (!string.IsNullOrEmpty(psSearchFilter))
{
lsRetVal = psSearchFilter + " AND ";
}
for (int i = 0; i <= paObjectValues.GetUpperBound(0); i++)
{
lsObjectValues += lsDelimiter + paObjectValues[i] + lsDelimiter;
if (i < paObjectValues.GetUpperBound(0))
{
lsObjectValues += ", ";
}
}
return lsRetVal += "(" + psColumnName + " IN (" + lsObjectValues + "))";
}
見的string.join和很多重複。 FWIW:我推薦使用(動態添加的)佔位符,因爲SQL是SQL。 – 2012-11-06 21:17:14
您是否查看過參數化查詢或其他形式的消毒輸入?此代碼只是乞求SQL注入攻擊。 – tmesser
@YYY - 是的,我會做一個參數化查詢。試圖讓這個工作第一。 – ggrewe1959