对于有'的,必须要把单引号,写两次,比如:
declare @t table(v varchar(100))insert into @t
values('I''m a boy!')select * from @t
/*
I'm a boy!
*/

解决方案 »

  1.   


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

  2.   

    其实这个应该是前端处理的问题,在sql端加那么多'维护性非常低
      

  3.   

    嗯嗯,我用替换的办法解决了,string下有一个函数。