sql insert语句往数据库插入数据出错

李国宝 2014-02-21 10:50:04
insert语句插入语句中,某字段数据类型为字符型,取得控件text值后,text值中有''存在,插入出错。
求解决办法。

代码:
string art_sql = "INSERT INTO [it].[dbo].[Article]([ArticleTitle],[ArticleContent],[UserId],[ArticleTime],[ArticleTypeId])VALUES('" + txtTitle.Text + "','"+Convert.ToString(txtCKEditor.Text.ToString())+"'," + Convert.ToInt32(lblUserId.Text) + ",'" + Convert.ToDateTime(lblTime.Text) + "'," + Convert.ToInt32(ddlArticleType.SelectedValue) + ")";


如txtCKEditor.Text中带有',无法正常插入。
...全文
294 7 打赏 收藏 转发到动态 举报
写回复
用AI写文章
7 条回复
切换为时间正序
请发表友善的回复…
发表回复
  • 打赏
  • 举报
回复
引用 6 楼 u013711462 的回复:
嗯嗯,我用替换的办法解决了,string下有一个函数。
嗯,那就好
李国宝 2014-02-23
  • 打赏
  • 举报
回复
嗯嗯,我用替换的办法解决了,string下有一个函数。
  • 打赏
  • 举报
回复
引用 3 楼 u013711462 的回复:
怎么处理呢?可以写个小例子给我么?对这个不是很了解。
比如,你的语句: string art_sql = "INSERT INTO [it].[dbo].[Article]([ArticleTitle],[ArticleContent],[UserId],[ArticleTime],[ArticleTypeId])VALUES('" + txtTitle.Text + "','"+Convert.ToString(txtCKEditor.Text.ToString())+"'," + Convert.ToInt32(lblUserId.Text) + ",'" + Convert.ToDateTime(lblTime.Text) + "'," + Convert.ToInt32(ddlArticleType.SelectedValue) + ")"; 在字符串上,最好替换一下: string art_sql = "INSERT INTO [it].[dbo].[Article]([ArticleTitle],[ArticleContent],[UserId],[ArticleTime],[ArticleTypeId])VALUES('" + 替换函数(txtTitle.Text,"'","''") + "','"+Convert.ToString(txtCKEditor.Text.ToString())+"'," + Convert.ToInt32(lblUserId.Text) + ",'" + Convert.ToDateTime(lblTime.Text) + "'," + Convert.ToInt32(ddlArticleType.SelectedValue) + ")";
李国宝 2014-02-22
  • 打赏
  • 举报
回复
怎么处理呢?可以写个小例子给我么?对这个不是很了解。
  • 打赏
  • 举报
回复
你可以用函数,把文本中的单引号,替换成两个单引号,就可以了
  • 打赏
  • 举报
回复
对于有'的,必须要把单引号,写两次,比如:
declare @t table(v varchar(100))

insert into @t
values('I''m a boy!')

select * from @t
/*
I'm a boy!
*/
發糞塗牆 2014-02-22
  • 打赏
  • 举报
回复
其实这个应该是前端处理的问题,在sql端加那么多'维护性非常低

22,206

社区成员

发帖
与我相关
我的任务
社区描述
MS-SQL Server 疑难问题
社区管理员
  • 疑难问题社区
  • 尘觉
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧