SQL语句如下
insertComm = String::Format("insert into \"DATABASELOCK_NEW\"(\"OBJECT_NAME\", \"SESSION_ID\", \"ORACLE_USERNAME\", \"PROCESS\", \"LOCKED_MODE\", \"MACHINE\", \"STATUS\", \"SID_\", \"SERIAL_\", \"PROGRAM_\", \"GETTTIME\")VALUES( '{0}','{1}','{2}','{3}','{4}','{5}','{6}','{7}','{8}','{9}','{10}')",OBJECT_NAME,SESSION_ID,ORACLE_USERNAME,PROCESS,LOCKED_MODE,MACHINE,STATUS,SID_,SERIAL_,PROGRAM_,CurrentTime);insertComm 变量值居然是:
insert into "DATABASELOCK_NEW"("OBJECT_NAME", "SESSION_ID", "ORACLE_USERNAME", "PROCESS", "LOCKED_MODE", "MACHINE", "STATUS", "SID_", "SERIAL_", "PROGRAM_", "GETTTIME")VALUES( 'TB_RPT_SLAGDATA01','100','LGMES','2688:2136','3','WORKGROUP\GETINFO
少了半截。而跟踪变量 MACHINE,并没发现值有什么特别的,值就是“WORKGROUP\GETINFO”。刚学VC。请大家指教。。谢谢 

解决方案 »

  1.   

    跟踪变量中含有转义字符啊 
    \会影响这个sql语句字符串的
    \\ == \
      

  2.   

    去掉字段MACHINE,整个SQL语句就正常了。。估计是MACHINE变量值有问题。但是怎样跟踪和处理呢?
      

  3.   

    你可以用下面的一个代码测试:
    string arg = "C:\0x0";
                MessageBox.Show(arg.Length + "");
                string s = string.Format("Values('{0}')Hello", arg);
                MessageBox.Show(s)
    你会发现和你的问题是一样的。
    希望对你有帮助....
      

  4.   

    genlinux你好:我需要把"WORKGROUP\GETINFO"这样的串写入数据库..怎样快速把"WORKGROUP\GETINFO"转换成"WORKGROUP\\GETINFO"呢?这样就不会出现吗?另外.感觉如果变量里面有单引号的话.程序也会报错...在单引号前面加"\"可以解决吗?明天才能知道解决.只是现在很想知道
      

  5.   

    genlinux你好:我需要把"WORKGROUP\GETINFO"这样的串写入数据库..怎样快速把"WORKGROUP\GETINFO"转换成"WORKGROUP\\GETINFO"呢?这样就不会出现吗?另外.感觉如果变量里面有单引号的话.程序也会报错...在单引号前面加"\"可以解决吗?明天才能知道解决.只是现在很想知道
      

  6.   

    你要知道MACHINE字符串的最后一个字符是什么
    \r
    \n
    \0
    \a
    \b
    \f
    \t
    \v
    \u
    等等...