我有以下代码填充用于填充树视图中节点的数据集:
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
命令,但我不知道它的正确语法。
答案 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);