[英]C# not liking SQL JOINS
I am trying to compare and build a table comparing two columns(Using LIKE). 我试图比较和构建一个比较两列的表(使用LIKE)。 In two classes(Win32_Printer.name and Win32_PrinterDriver.name).
在两个类(Win32_Printer.name和Win32_PrinterDriver.name)中。
The only issue is I cannot run any kind of JOIN 唯一的问题是我无法运行任何类型的JOIN
string query = string.Format("SELECT *
FROM Win32_Printer INNER JOIN Win32_PrinterDriver
ON Win32_Printer.Name = Win32_PrinterDriver.Name
WHERE Win32_Printer.Name LIKE '%', Win32_PrinterDriver.Name, '%'");
After this is run I get thrown an error: 运行后,我会抛出一个错误:
I think you repeat the join condition. 我想你重复加入条件。 You can go with just
你可以随便去
SELECT *
FROM Win32_Printer
INNER JOIN Win32_PrinterDriver ON Win32_Printer.Name = Win32_PrinterDriver.Name
or if you want compare with like: 或者如果你想与之比较:
SELECT *
FROM Win32_Printer P
INNER JOIN Win32_PrinterDriver D ON D.Name LIKE '%'+P.Name+'%'
string query = string.Format("SELECT * FROM Win32_Printer")
try
{
ManagementObjectSearcher searcher = new ManagementObjectSearcher(query);
ManagementObjectCollection coll = searcher.Get();
string name = "";
foreach (ManagementObject printer in coll)
{
foreach (PropertyData property in printer.Properties)
{
if (property.Name == "Name")
{
name = property.Value.ToString();
}
rtxLog.AppendText(property.Name + "-->" + property.Value + "\n");
if (property.Name == "WorkOffline")
{
string querydriver = string.Format("SELECT * from Win32_PrinterDriver WHERE Name LIKE '%" + name + "%'");
ManagementObjectSearcher searcherdriver = new ManagementObjectSearcher(querydriver);
ManagementObjectCollection colldriver = searcherdriver.Get();
foreach (ManagementObject driver in colldriver)
{
foreach (PropertyData propertydriver in driver.Properties)
{
rtxLog.AppendText(propertydriver.Name + "-->" + propertydriver.Value + "\n");
}
}
}
rtxNameLog.AppendText(name + "\n");
}
rtxLog.AppendText("\n\n\n\n\n\n\n\n\n\n\n");
}
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.