C#中编写SQL语句出现单引号怎么办

sql="INSERTINTO"+m_TextBoxTableName.Text+"(ID,SONG)"+"VALUES("+newSmallText[0]+",'"+n... sql = "INSERT INTO " + m_TextBoxTableName.Text + "(ID,SONG) " + "VALUES(" + newSmallText[0] + ",'" + newSmallText[1] + "')";

这条语句,如果newSmallText[1]传回来的字符串里面有单引号的话,比如是can't的话,应付出错,如果完整地把包含单引号的字符串传给SQL?让它中正确显示
展开
 我来答
二区伊利丹联盟
2011-01-13 · TA获得超过997个赞
知道小有建树答主
回答量:99
采纳率:0%
帮助的人:78.4万
展开全部
sql语句中可以用连续的两个单引号表示一个单引号字符,形同C#中的转义字符,
比如select '''' 结果就是一个单引号',所以倘若你的参数 newSmallText[1] 中含有 can't 这样的字符串的话,就可以这样处理:
newSmallText[1].replace("'","''");//引号太不明显了·····总之就是把字符串中的一个单引号替换为两个单引号
郭某人来此
2015-10-03 · TA获得超过1645个赞
知道答主
回答量:952
采纳率:100%
帮助的人:90万
展开全部
利用传参数的方法进行赋值,比如:

strSql = new StringBuilder();
strSql.Append("INSERT INTO table_name(");
strSql.Append("aa,bb)");
strSql.Append(" VALUES (");
strSql.Append("@in_aa,@in_bb)");
cmdParms = new DbParameter[]{
Helper.CreateInDbParameter("@in_aa", DbType.Int32, 1),
Helper.CreateInDbParameter("@in_bb", DbType.AnsiString, “您好”)}
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
山裹新者陈鑫成9607
推荐于2016-03-02
知道答主
回答量:25
采纳率:0%
帮助的人:23.9万
展开全部
利用传参数的方法进行赋值,比如:

strSql = new StringBuilder();
strSql.Append("INSERT INTO table_name(");
strSql.Append("aa,bb)");
strSql.Append(" VALUES (");
strSql.Append("@in_aa,@in_bb)");
cmdParms = new DbParameter[]{
Helper.CreateInDbParameter("@in_aa", DbType.Int32, 1),
Helper.CreateInDbParameter("@in_bb", DbType.AnsiString, “您好”)}
本回答被提问者和网友采纳
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
terry019
2011-01-13 · 超过26用户采纳过TA的回答
知道答主
回答量:61
采纳率:0%
帮助的人:54.5万
展开全部
首先,这样拼接SQL语句是不安全的,
你可以这样
sql=string.Format("INSERT INTO {0}(ID,SONG) VALUES({1},'{2}')",m_TextBoxTableName.Text ,newSmallText[0],newSmallText[1]);
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
freeffei
2011-01-13 · 超过17用户采纳过TA的回答
知道答主
回答量:50
采纳率:0%
帮助的人:52.9万
展开全部
用其他的字符替换,读取的时候再替换出来
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
收起 更多回答(3)
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式