添加WHEREName=InvalidQuery错误publicstaticvoidCommand(stringvCommand,stringmachineName,stringusername,stringpassword){连接选项ConnOptions=null;ObjectQueryObjQuery=null;ManagementObjectSearcherObjSearcher=null;尝试{ConnOptions=newConnectionOptions();ConnOptions.Impersonation=ImpersonationLevel.Impersonate;ConnOptions.EnablePrivileges=true;//localmachine.ToName(==Environment.MachineName.ToUpper())Scope=newManagementScope(@"ROOTCIMV2",ConnOptions);else{//远程机器ConnOptions.Username=username;ConnOptions.Password=密码;Scope=newManagementScope(@"\"+machineName+@"ROOTCIMV2",ConnOptions);范围。连接();ObjQuery=newObjectQuery("SELECT*FROMWin32_DirectoryWHEREName='c:\0stuff'");ObjSearcher=newManagementObjectSearcher(Scope,ObjQuery);foreach(ObjSearcher.Ge中的ManagementObjectobjt())//错误发生在这里{//代码在这里}if(ObjSearcher!=null){ObjSearcher.Dispose();}}catch(Exceptionex){抛出ex;如果我只是使用“ObjQuery=newObjectQuery("SELECT*FROMWin32_Directory");”,我一点问题都没有,但是当我尝试使用“WHEREName=X”时,我得到一个“无效查询”“错误。我不知道出了什么问题。(在任何人问之前,是的,c:0stuff存在)。您需要使用逐字字符串文字@"..."来防止反斜杠在C#中被视为转义序列:@"SELECT*FROMWin32_DirectoryWHEREName='c:\0stuff'"没有@,实际上发送的查询将如下所示:SELECT*FROMWin32_DirectoryWHEREName='c:0stuff'请注意,反斜杠不再被正确转义。以上就是C#学习教程:添加WHEREName=All时出现无效查询错误的分享内容,如果对大家有用,需要详细了解C#学习教程,希望大家多加关注——本文收集自网络,不代表立场,如涉及侵权,请点击右边联系管理员删除。如需转载请注明出处:
