C# 无法隐式转换类型';字符串';至';整数';
这是MyCode:C# 无法隐式转换类型';字符串';至';整数';,c#,asp.net-mvc,type-conversion,C#,Asp.net Mvc,Type Conversion,这是MyCode: public ActionResult Index() { var EmployeerId = SessionPersister.Email_ID; //Convert.ToInt32(EmployeerId); int.Parse(EmployeerId); db.Job_Det.OrderByDescending(j => j.Job_ID).ToList().Where(x => x.Employeer_ID = Employ
public ActionResult Index()
{
var EmployeerId = SessionPersister.Email_ID;
//Convert.ToInt32(EmployeerId);
int.Parse(EmployeerId);
db.Job_Det.OrderByDescending(j => j.Job_ID).ToList().Where(x => x.Employeer_ID = EmployeerId);
return View();
}
我尝试了许多转换方法。但是我无法将上面的字符串转换为整数。您没有存储
int.Parse(EmployeerId)的结果代码>它不会将employerid更改为int。。您需要将其保留为int变量,例如
eid = int.Parse(EmployeerId);
然后将x=>x.Employeer\u ID=EmployeerId
替换为x=>x.Employeer\u ID==eid
,除非您确实想用新值替换所有Employeer\u ID。只需调用Convert.ToInt32(EmployeerId)
或int.Parse(EmployeerId)
不会更改EmployeerId的类型
-这两种方法都将返回一个需要存储在新变量中的值
您目前也没有对查询结果执行任何操作—在调用Where
之前调用ToList()
,您获取了所有数据,然后在本地进行过滤,这是一个坏主意
最后,在查询中,您试图分配一个值,而不是比较它;您需要的是=
运算符,而不是=
我猜你想要的是:
public ActionResult Index()
{
string employerIdText = SessionPersister.Email_ID;
int employerId = int.Parse(employerIdText);
var jobs = db.Job_Det
.OrderByDescending(j => j.Job_ID)
.Where(x => x.Employeer_ID == employerId)
.ToList();
return View(jobs);
}
int.Parse(EmployeerId)
;不会更改EmployeedId。您需要为int值使用另一个变量
var iEmployeerId = int.Parse(EmployeerId);
为什么您知道它失败了?如果EmployeerId
是string
,那么您需要首先将它转换为int
x=>x.Employeer\u ID=EmployeerId
只有一个等号?此外,int.parse结果没有要存储的变量。是的,var Employeerid是字符串,需要将其转换为int。。。因为我尝试了许多转换方法,但没有效果。@JaffarHayat:它没有改变变量的类型,不,它不能。相反,这些方法返回一个新值。非常感谢您。。。现在开始工作了,太好了:)
public ActionResult Index()
{
var EmployeerId = SessionPersister.Email_ID;
//Convert.ToInt32(EmployeerId);
int EmpId=int.Parse(EmployeerId);
db.Job_Det.OrderByDescending(j => j.Job_ID).ToList().Where(x => x.Employeer_ID = EmpId);
return View();
}