【发布时间】:2014-05-06 23:53:45
【问题描述】:
我的查询如下所示:
var rport = from exc in db.Exception_Datas
join emp in db.Emp_infos on exc.Emp_id equals emp.ID
where (exc.Action_date >= frm && exc.Action_date <= to) &&
emp.Branch == cmbBranch.SelectedValue &&
emp.Dept == cmbDept.SelectedValue &&
emp.ID == Convert.ToInt32(cmbEmp.SelectedValue)
select new
{
emp.Emp_name,
emp.ID,
emp.Designation,
emp.Dept,
emp.Branch,
exc.Action_date
};
我正在与这样的 cmbEmp.Items 签约:
var allEmp = from emp in db.Emp_infos select emp;
myItem.Text = "--Select--";
myItem.Value = "0";
cmbEmp.Items.Add(myItem);
foreach (var semp in allEmp)
{
myItem = new RadComboBoxItem();
myItem.Text = semp.Emp_name.ToString();
myItem.Value = semp.ID.ToString();
cmbEmp.Items.Add(myItem);
}
我已经关注了一些其他问题,并在 SO 和 SO 之外发布。但是他们中的任何一个都没有帮助我解决问题。我收到此错误:
{“输入字符串的格式不正确。”} System.SystemException {System.FormatException}
【问题讨论】:
-
问题似乎与
Convert.ToInt32(cmbEmp.SelectedValue)有关,请确保您的SelectedValue具有int可解析值。也不要在 LINQ 查询中这样做,在查询之前对其进行解析,然后在查询中使用该值。 -
只是为了详细说明@Habib 提到的内容,您不想将转换作为 LINQ 查询的一部分,因为它将为 每个 记录执行转换。
-
@habib > 我按照 Muhammad Umars 的回答做了。但为此我没有得到任何价值。你能猜到为什么吗?
-
@Rashad,您没有得到正确的选择值。放置一个调试器点,看看你在
cmbEmp.SelectedValue中得到了什么。该问题与您的 LINQ 查询无关。
标签: c# linq sql-server-2008