【发布时间】:2010-09-26 17:03:27
【问题描述】:
我正在编写一些代码来将名称存储在数据库中。我将名称限制为仅某些字符,但姓氏是一个挑战。由于有些人的名字中有单引号(例如 O'Brian),我需要允许这样做。所以我写了一个正则表达式替换来替换 ' 用一个 \' 我认为应该使 ' 一个文字。就替换而言,它可以工作,但它仍然标记字符串的结尾,我收到错误
解析查询时出错。 [令牌行号=1,令牌行偏移量=71,错误令牌=Brian]
我理解错误,单引号标记了要输入的字符串的结尾,而将字符串的其余部分 Brian 放在引号之外。
我正在使用的代码:
Regex reg = new Regex("\'");
firstName = reg.Replace(firstName, "\\'");
lastName = reg.Replace(lastName, "\\'"):
然后选择查询是用string.format构建的
sqlInsertObj.CommandText = string.Format("INSERT INTO childNameId (childFName, childLName) VALUES ('{0}', '{1}')", fName, lName);
sqlInsertObj.ExecuteNonQuery();
这适用于任何条目,除非名称中有引号。
【问题讨论】:
标签: c# regex visual-studio-2010 insert sql-server-ce