SQL Server 把'作为关键字...要insert到'时,需要转换为两个'':参考方法://把单引号转换为双引号 public static string encode2sql(string text)
{
string temp_text=text;
//int i=text.IndexOf("'",0);
if(text.IndexOf("'",0)!=-1)
{
temp_text=text.Replace("'","''");
}
return temp_text;
}

解决方案 »

  1.   

    TO: 
    brightheroes(闭关|亨利就这样黯然告别欧洲杯....) 呵呵...老兄见笑啦...最近看球...好困,基本没有来的
      

  2.   

    _conn.Open();
    SqlCommand _comm = new SqlCommand ( "select * from Table where Name = @Name", _conn );
    SqlTransaction _tran = _conn.BeginTransaction();
    _comm.Transaction = _tran;_comm.Parameters.Add( "@Name", SqlDbType.VarChar, 50 ).Value = "';delete table"; // 随便什么都可以
    try
    {
    _comm.ExecuteScalar();
    _tran.Commit();
    }
    catch()
    {
    _tran.Rollback();
    }
    _conn.Close();习惯tran
      

  3.   

    俺是把它转换成相应的HTML代码!
      

  4.   

    参考
    SET QUOTED_IDENTIFIER OFF
      

  5.   

    单引号替换成双单引号,而不是双引号
    一般的SQL语句,都应有这样的处理
      

  6.   

    把单引号转成两个单引号即可。参见SQL语句中的转义符
      

  7.   

    public string FormatString(string str) 

    str=str.Replace("<","&lt;"); 
    str=str.Replace(">","&gt;"); 
    str=str.Replace("'","''");
             ......
             return str; 
    }
      

  8.   

    同意 Alexwinter(阿鹏)
    写一个方法把常用的都给换了。
      

  9.   

    str=text_name.Replace("'","''");
      

  10.   

    用参数了,很方便的,不要直接拼接字符串
    OleDb
    INSERT INTO TB_FilmFile (FilmName) VALUES ?
      

  11.   

    strSecond=Server.Server.HtmlDecode(strFirst)
      

  12.   

    支持lkk2073(三楼楼长)的方法!
    易懂实用.
      

  13.   

    如果 有两个单引号 怎么办?
    还是用参数啦 正规的解法
    另一种方法
    把单引号 换为 cha(30) 即可 
    但是要注意SQL Server 中这个函数是 cha(),Access中这个函数是 chr().其他的数据库我没有试用过. 
    30 是单引号的ASCII 码同理可以用这个函数输入任何的 ASCII字符数据库服务会自动转换的 我们读出来的时候就不用再换回去了。
      

  14.   

    如果是.NET,MS建议大家用Parameters
      

  15.   

    SQL Server 把'作为关键字...要insert到'时,需要转换为两个''
      

  16.   

    1、使用存储过程,通过参数传递插入的字符串数据,且字符串可以包含任何字符。
    2、若直接使用SQL语句,无法将单引号插入,只能限制用户输入字符串数据中不能包含单引号。