日期:2014-05-16  浏览次数:20553 次

sql insert语句往数据库插入数据出错
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中带有',无法正常插入。
------解决方案--------------------
你可以用函数,把文本中的单引号,替换成两个单引号,就可以了
------解决方案--------------------
引用:
怎么处理呢?可以写个小例子给我么?对这个不是很了解。


比如,你的语句:
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) + ")";