簡體   English   中英

用單引號括住特定的單詞

[英]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注入。

本文是解決C#問題的文章

圖案:

(?<!')(@\w+)

替代:

'$1'

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

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