无效查询C#
问题描述:
今天我写了我的第二个代码在C# 为什么不工作?代码ist(看起来)是正确的!无效查询C#
错误代码:InvalidQuery
代码:
static void Main(string[] args)
{
GetComponent("Win32_Processor", "Name");
Console.Read();
Console.ReadKey();
}
private static void GetComponent(string hwclass, string syntax)
{
ManagementObjectSearcher mos = new ManagementObjectSearcher ("root\\CIMV2","SELECT * FROM" + hwclass);
foreach(ManagementObject mj in mos.Get())
{
Console.WriteLine(Convert.ToString(mj[syntax]));
}
}
答
你之后 “FROM” 缺少空间:
("root\\CIMV2","SELECT * FROM" + hwclass);
更改为:
("root\\CIMV2","SELECT * FROM " + hwclass);
+0
谢谢!这样的小错误... –
答
请,使用格式化或串插(C#6.0+),以避免语法错误:
private static void GetComponent(string hwclass, string syntax) {
//DONE: keep query readable
string query =
[email protected]"select *
from {hwclass}"; // <- you've missed space here
//DONE: wrap IDisposable into using
using (ManagementObjectSearcher mos = new ManagementObjectSearcher("root\\CIMV2", query)) {
foreach(ManagementObject mj in mos.Get())
Console.WriteLine(Convert.ToString(mj[syntax]));
}
}
+0
不能让自己变得更好。带格式和字符串插值的提示+1。 – SimonC
+0
谢谢你的男人!这样一个小错误.. –
你为什么不使用VS DEBUG功能? – Jivan
呃,试着在'FROM'后面添加*空格*:“root \\ CIMV2”,“SELECT * FROM”+ hwclass)' –