如何摆脱数据集中的单引号?

时间:2015-12-28 17:11:13

标签: c# asp.net treeview code-behind

我有以下代码填充用于填充树视图中节点的数据集:

try
{
    SqlCommand cmd2 = new SqlCommand("SELECT [ACCT_GRP], [ACCT_GRP_PK] FROM [ACCT_GRP_LIST] " + 
    "ORDER BY [ACCT_GRP] ASC", con4);
    SqlDataAdapter da = new SqlDataAdapter(cmd2);
    DataSet PrSet = new DataSet();

    da.Fill(PrSet, "ACCT_GRP");   
    TreeViewAccts.Nodes.Clear();
    foreach (DataRow dr in PrSet.Tables[0].Rows)
    {
        TreeNode tnParent = new TreeNode();
        tnParent.Text = dr["ACCT_GRP"].ToString();
        tnParent.Value = dr["ACCT_GRP_PK"].ToString();
        tnParent.PopulateOnDemand = true;
        tnParent.SelectAction = TreeNodeSelectAction.SelectExpand;
        TreeViewAccts.Nodes.Add(tnParent);
        FillTree_Child(tnParent, tnParent.Text.ToString());
    }
}
catch (Exception ae)
{
    Response.Write(ae.Message);
    //ErrorLogging.WriteToEventLog(ae);
}

当然,发生的事情是,如果我的一个ACCT_GRP名称中有一个撇号(即#34; John"面包店"),它会抛出一个错误。有谁知道如何解决这一问题?我想我需要一个Replace命令,但我不知道它的正确语法。

3 个答案:

答案 0 :(得分:3)

tnParent.Text = dr["ACCT_GRP"].ToString().Replace("'"; "''");

答案 1 :(得分:1)

因此,如果你拿走字符串,你可以像这样替换。

string parent = tnParent.Replace("'","''");

然后将父字符串放在?

答案 2 :(得分:1)

您也可以使用tsql替换:

SqlCommand cmd2 = new SqlCommand("SELECT REPLACE([ACCT_GRP], '''', '') as ACCT_GRP, [ACCT_GRP_PK] FROM [ACCT_GRP_LIST] " + "ORDER BY [ACCT_GRP] ASC", con4);