[英]Enclose specific words with single quotes
我正在尋找一個簡單的解決方案,用引號括住字符串中的文本。
例如:
DATEDIFF(Minutes, Lead.WhenCreated, @Today)
需要更新為
DATEDIFF(Minutes, Lead.WhenCreated, '@Today')
如果源字符串已經在標記上加上了引號,則不應進行任何更改。 字符串中可能有多個標記,我不知道標記的值是什么-只是說它將以@字符開頭。
我的環境是Visual Studio C#2008。
希望能有所幫助。
謝謝。
resultString = Regex.Replace(subjectString, @"(@\b\w+\b)", "'$1'");
您可以使用這個。 它將找到以@開頭的所有單詞,並在它們后面加上引號。
編輯:
resultString = Regex.Replace(subjectString, @"((?<!')@\b\w+\b)", "'$1'");
要考慮已經引用的字符串。
看起來您正在用C#代碼構建SQL語句,然后自己替換參數。 使用這種方法可能會更好...
DataReader rdr;
using (SqlConnection con = new SqlConnection(MY_CONNECTIONSTRING)
{
con.Open();
string sql = "SELECT DATEDIFF(Minutes, Lead.WhenCreated, @Today) FROM tbl";
using (SqlCommand cmd = new SqlCommand(sql, con))
{
cmd.Parameters.AddWithValue("@Today", datDateValue);
rdr = cmd.ExecuteReader();
}
}
此方法可以更安全地防止惡意SQL注入。
圖案:
(?<!')(@\w+)
替代:
'$1'
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.