string tr = @"SELECT * into bijiao from OpenDataSource('Microsoft.ACE.OLEDB.12.0','Data Source=""C:\bijiao.xlsx"";Extended properties=""Excel 12.0""')...sheet1$";
比如这个字串符在SQL 2000运行是通过了。
然后在程序中。为了传参数filename。改为string tr = @"SELECT * into bijiao from OpenDataSource('Microsoft.ACE.OLEDB.12.0','Data Source="+filename+@";Extended properties=""Excel 12.0""')...sheet1$";
结果编译的结果不能通过。因为Data Source=C:\1.txt 而必需为Data Source="C:\1.txt" 才能编译通过。小弟求教如果进行传入参数的转义带双引号。如果写为string tr = @"SELECT * into bijiao from OpenDataSource('Microsoft.ACE.OLEDB.12.0','Data Source=""+filename+@"";Extended properties=""Excel 12.0""')...sheet1$";直接把+filename+当字符串处理了。

解决方案 »

  1.   


    "C:\1.txt"
    \"C:\1.txt\" 用\来转义
      

  2.   

    string tr = string.Format("SELECT * into bijiao from OpenDataSource('Microsoft.ACE.OLEDB.12.0','Data Source={0};Extended properties=Excel 12.0')...sheet1$",filename);
      

  3.   

    string tr = "SELECT * into bijiao from OpenDataSource('Microsoft.ACE.OLEDB.12.0','Data Source=\"C:\bijiao.xlsx\";Extended properties=\"Excel 12.0\"')...sheet1$";
      

  4.   

    用转义字符,Console.WriteLine("\"");这会输出一个"
    懂了吧  
      

  5.   

    大家不要这样想了。我传入的是个参数。相当于string str="I"+tr+"you";tr为参数。例如。传入的参数为string tr="love";我要求的编译的结果为str="I "love" you";用@转义无效,用"\"",方法时。会提示 \ 有错误。 希望大家能先在自己本机上测试通过。再告诉我正确答案。小弟很急。
      

  6.   

    string str="I"+'"+tr+"'+"you";
    这里tr就可以是参数了。
      

  7.   

    string str="I"+'"+tr+"'+"you";
    这里tr就可以是参数了。不好意思上面的字体小了
      

  8.   

    我也推荐楼主是有这种方法,format加占位符,任何类型都可以