我有这个错误CS1001(C#)和CS1026..但不知道如何解决它
我得到了这个错误:我有这个错误CS1001(C#)和CS1026..但不知道如何解决它,c#,razor,webmatrix,C#,Razor,Webmatrix,我得到了这个错误: Compiler Error Message: CS1001: Identifier expected 从这组代码中: var reqcategory=""; foreach(Request["category"] as reqcategory) { var sql5 = "SELECT Type.PreReq1, Type.PreReq2, (CASE WHEN (Type.PreReq1 IS NOT NULL) AND
Compiler Error Message: CS1001: Identifier expected
从这组代码中:
var reqcategory="";
foreach(Request["category"] as reqcategory)
{
var sql5 = "SELECT Type.PreReq1, Type.PreReq2, (CASE WHEN (Type.PreReq1 IS NOT NULL) AND (PermitApp1.RPClass IS NULL) AND (PermitApp1.RPCategory IS NULL) THEN 1 ELSE 0 END) AS missing1, (CASE WHEN (Type.PreReq2 IS NOT NULL) AND (PermitApp2.RPClass IS NULL) AND (PermitApp2.RPCategory IS NULL) THEN 1 ELSE 0 END) AS missing2 FROM Type LEFT JOIN PermitApp AS PermitApp1 ON (Type.PreReq1=PermitApp1.RPClass) OR (Type.PreReq1=PermitApp1.RPCategory) AND ( PermitApp1.CDSID = @0 ) AND (PermitApp1.MDecision='1') LEFT JOIN PermitApp AS PermitApp2 ON (Type.PreReq2=PermitApp2.RPClass) OR (Type.PreReq2=PermitApp2.RPCategory) AND ( PermitApp2.CDSID = @1 ) AND (PermitApp2.MDecision='1') WHERE Type.PType = @2";
var result = db.QuerySingle(sql5, myCDSID, myCDSID, reqcategory);
var miss1 = result.missing1;
var miss2 = result.missing2;
}
错误恰好落在这一行上:
foreach(Request["category"] as reqcategory)
正如编译器所强调的那样
谁能告诉我我的错误是什么??我应该如何声明标识符
不管怎样,什么是标识符?我似乎无法理解这种解释
如果是int,我将使用int.parse
对,但如果是string…我如何才能这样做
谢谢,谢谢
顺便说一句,我正在使用webmatrix
在我使用JaredPar的解决方案后…下一个错误出现了
CS1026: ) expected
在本部分:
if (miss1 == '1' or miss2 == '1'){
ModelState.AddError("missing", "You have not met the Pre-Requisites for "+ cat +" yet.")
} else if (miss1 == '0' and miss2 == '0'){
Session["license"] = Request["licence"];
Session["from"] = Request["from"];
Session["to"] = Request["to"];
Session["group"] = Request["group"];
Session["class1"] = Request["class1"];
Session["category1"] = Request["category1"];
Session["class"] = Request["class"];
Session["category"] = Request["category"];
Response.Redirect("~/Questionnaire");
}
在这一行:
if (miss1 == '1' or miss2 == '1'){
谢谢…我不明白为什么我需要一个“(”在那里…因为我已经把它全部关闭了。问题是你把
foreach
循环的结构倒过来了。在C中,它是集合中的identifire
foreach(var reqcategory in Request["category"]) {
...
}
请注意,即使这样也不够,因为请求[…]
返回的对象在C#中不是有效的集合类型。您需要指定基础集合的类型或使用动态
。最安全的选择是强制转换为IEnumerable
foreach(object reqcategory in (IEnumerable)Request["category"]) {
...
}
嗨…谢谢…你介意帮我解决另一个问题吗?它与我放的代码集正下方的代码有关…我编辑了我的问题。谢谢,还是我应该打开另一个QN?或者抱歉,我找到了原因…谢谢,或者在C中无效…必须使用||