比如: 
      db.sql="select userid,uname,userpassword from "t_usertable" where username='"+b_na.Text+"'"; 
运行报错! 
但是表名必须加引号,是小写的.如何转义? 

解决方案 »

  1.   

          db.sql="select userid,uname,userpassword from "+"\'"+t_usertable+"\'"+" where username='"+b_na.Text+"'"; 
      

  2.   

    1、转义的话用:
    你的代码似乎有些问题t_usertable是表名吧?要引起来吗?应该是直接可以用不需要加引号吧。是不是忘记+号了?
    db.sql="select userid,uname,userpassword from "+ t_usertable + " where username='"+b_na.Text+"'"; 
    在C#中使用\加上你要使用的字符来转义如:
    \n
    \r
    \"
    \t2、对于你的情况建议不要使用这种方式,改为:
    db.sql=string.Format("select userid,uname,userpassword from {0} where username='{1}",t_usertable,b_na.Text) ; 
      

  3.   

    关于C#的资料可以参考一下;
    http://www.cnblogs.com/zhouxuanmsn/articles/676944.html
    http://read.newbooks.com.cn/info/196181.html引用部分:转义字符 转义字符的意义 
    \n   回车换行 
    \t 横向跳到下一制表位置 
    \v  竖向跳格 
    \b 退格 
    \r  回车 
    \f  走纸换页 
    \\ 反斜线符"\" 
    \'  单引号符 
    \a  鸣铃 
    \ddd  1~3位八进制数所代表的字符 
    \xhh 1~2位十六进制数所代表的字符 
    @在c#中为强制不转义 的符号,在里面的转义字符无效
    string str1 = "abc\n"; // 这里\n当然默认转为换行符
    string str2 = @"abc\n" // 这里\n不自动转为换行符号,相当于 str2 = "abc\\n"以下两种方式等效
    string aaa="D:\\Root\\SendEmail\\SendEmail\\bin\\Debug\\downjmail.dll";
    string aaa=@"D:\Root\SendEmail\SendEmail\bin\Debug\downjmail.dll";
      

  4.   

    t_usertable是表名,不是变量,需要在表名上加双引号.
      

  5.   


    是表明直接转义:
    db.sql="select userid,uname,userpassword from \"t_usertable\" where username='"+b_na.Text+"'"; 
    //用format的方法也可以 
    db.sql=string.Format("select userid,uname,userpassword from \"t_usertable\" where username='{0}'",b_na.Text);