C# 执行以下c代码时出错
我曾尝试使用以下代码删除表中的一行,但出现错误C# 执行以下c代码时出错,c#,C#,我曾尝试使用以下代码删除表中的一行,但出现错误 {System.Data.OleDb.OleDbException: Missing ), ], or Item in query expression '[CompanyID] not in (Select [CompanyID] from EmployeeDetails where [CompanyID] = @cmpID'. 这是我的密码: int companyID = _cmpDetailsList[i].CompanyID;
{System.Data.OleDb.OleDbException: Missing ), ], or Item in query expression
'[CompanyID] not in (Select [CompanyID] from EmployeeDetails
where [CompanyID] = @cmpID'.
这是我的密码:
int companyID = _cmpDetailsList[i].CompanyID;
OleDbCommand upcmd = new OleDbCommand(
"delete * from CompanyDetails where [CompanyID] not in " +
"(Select [CompanyID] from EmployeeDetails where [CompanyID] = @cmpID", conn);
conn.Open();
upcmd.Parameters.AddWithValue("@cmpID", companyID);
upcmd.ExecuteNonQuery();
conn.Close();
我将命令修改为此格式
OleDbCommand upcmd = new OleDbCommand("delete * from CompanyDetails where [CompanyID]= @cmpID and not in (Select [CompanyID] from EmployeeDetails where [CompanyID] = @cmpID)", conn);
我犯了以下错误
System.Data.OleDb.OLEDBEException:语法错误,查询表达式“[CompanyID]=@cmpID”中缺少运算符,而不在从EmployeeDetails中选择[CompanyID]=@cmpID”的[CompanyID]中
请解决它如果您看到错误,它会告诉您问题:
OleDbCommand upcmd = new OleDbCommand(
"delete from CompanyDetails where [CompanyID] not in " +
"(Select [CompanyID] from EmployeeDetails where [CompanyID] = @cmpID)", conn);
您有一个错误,但最后没有匹配项。如果您看到错误,它会告诉您问题:
OleDbCommand upcmd = new OleDbCommand(
"delete from CompanyDetails where [CompanyID] not in " +
"(Select [CompanyID] from EmployeeDetails where [CompanyID] = @cmpID)", conn);
您的结尾有一个,但没有匹配。它适用于案例选择*用于删除其整个行,因此只需从中删除…它适用于案例选择*用于删除其整个行,因此只需从中删除…删除*从对访问有效…不确定op使用了什么,尽管+1如果可以添加的话,还有一件事是@string的用法literal可以使查询更容易阅读并发现缺少的大括号,好的是OP使用参数delete*from对访问有效…不确定OP使用的是什么,但是+1如果可以添加的话,还有一件事是@string literal的使用,它可以使查询更容易阅读并发现缺少的大括号,好的方面是使用参数