无法隐式转换类型'字符串'到整数'

时间:2016-05-24 07:50:23

标签: 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 = EmployeerId);
    return View();
}

我尝试了很多转换方法..但是我无法将上面的字符串转换为整数。

4 个答案:

答案 0 :(得分:5)

只需拨打Convert.ToInt32(EmployeerId)int.Parse(EmployeerId)即可更改EmployeerId的类型 - 这两种方法都会返回您需要存储的值一个新的变量。

目前没有对您的查询结果执行任何操作 - 并且在ToList()调用之前调用Where,您将获取所有数据,然后在本地过滤,这是一个坏主意。

最后,在您的查询中,您尝试分配值而不是比较它;您需要==运算符而不是=

我怀疑你想要这样的东西:

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);
}

答案 1 :(得分:4)

你不存储int.Parse(EmployeerId);的结果它不会将employeeid更改为int ..你需要将它保存为int变量,例如

eid = int.Parse(EmployeerId);

然后将x => x.Employeer_ID = EmployeerId替换为x => x.Employeer_ID == eid,除非您确实打算用新值替换所有employeer_ID。

答案 2 :(得分:1)

int.Parse(EmployeerId); 不会更改 EmployeerId 。您需要为int值使用另一个变量。

var iEmployeerId = int.Parse(EmployeerId);

答案 3 :(得分:0)

 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();
}