none
插入的数据中带单引号就出错。 RRS feed

  • 问题

  • 插入的数据中带单引号就出错。
    例如:
     string title=txtTitle.text;
     string content=txtContent.text;
     SqlDataSource ds = new SqlDataSource();
     ds.ConnectionString = ConfigurationManager.ConnectionStrings["conn"].ConnectionString;
     ds.InsertCommand = string.Format("insert into table(title,content) values(' "+title+" ',' "+content+" ')");
     ds.insert();
     只要插入的字符中带了单引号就出错。。。
     怎样改进了?
     替换单引号,还是使用存储过程,或者使用用ds.InsertParameters.Add("title",title); 
     那种方法最容易解决这个问题呀
     能详细说明最好了,水平很差。。。
    2009年10月18日 8:14

答案

  • 用参数来实现,无论是存储过程还是直接语句你都需要传递参数的
    ds.InsertCommand = "insert into [table]([title],[content]) values(@title,@content)";

    ds.InsertParameters.Add("@title",title);
    ds.InsertParameters.Add("@content",content);

    Wenn ich dich hab’,gibt es nichts, was unerträglich ist.坚持不懈!http://blog.tanging.net
    • 已标记为答案 斌斌NO1 2009年10月18日 13:43
    2009年10月18日 8:21
    版主
  • 1.存储过程
    2.Replace

    如: 输入一个  Bill's
      string title=txtTitle.Text.Replace("'", "#"); 写入数据库把 " ' " 替换成了#号.页面呈现在把#号替换成' 单引号,可以写个替换的方法,方便
    • 已标记为答案 斌斌NO1 2009年10月18日 13:44
    2009年10月18日 12:31

全部回复

  • 用参数来实现,无论是存储过程还是直接语句你都需要传递参数的
    ds.InsertCommand = "insert into [table]([title],[content]) values(@title,@content)";

    ds.InsertParameters.Add("@title",title);
    ds.InsertParameters.Add("@content",content);

    Wenn ich dich hab’,gibt es nichts, was unerträglich ist.坚持不懈!http://blog.tanging.net
    • 已标记为答案 斌斌NO1 2009年10月18日 13:43
    2009年10月18日 8:21
    版主
  • 1.存储过程
    2.Replace

    如: 输入一个  Bill's
      string title=txtTitle.Text.Replace("'", "#"); 写入数据库把 " ' " 替换成了#号.页面呈现在把#号替换成' 单引号,可以写个替换的方法,方便
    • 已标记为答案 斌斌NO1 2009年10月18日 13:44
    2009年10月18日 12:31