1

我对 EF 非常陌生,并尝试使用 ADO.NET EF 在组合框更改事件的文本框中填充数据。我尝试解析所有内容,但始终存在错误。我的代码在下面给出....请帮助我....在此先感谢。

private List<tSubDepartment> GetSubDepartmentInfo(int deptId)
    {
        using (DiagnosoftDataContext context = new DiagnosoftDataContext())
        {
            return (from c in context.tSubDepartments
                    where c.dpCode == deptId
                    select c).ToList();
        }
    }

    private void comboBox1_SelectedIndexChanged(object sender, EventArgs e)
    {
        var subDeptInfo =GetDepartmentInfo((int)comboBox1.SelectedValue);   // Error: "Specific cast is not valid"
        textBox2.Text = subDeptInfo[0].sdCode.ToString();
        textBox3.Text = subDeptInfo[0].sdName;
        textBox4.Text = subDeptInfo[0].dpCode.ToString();

    }

这是我填充组合框的代码

private void Form1_Load(object sender, EventArgs e)
    {
        comboBox1.DataSource = GetSubDepartments();
        comboBox1.DisplayMember = "sdName";
        comboBox1.ValueMember = "sdCode";
    }

private List<tSubDepartment> GetSubDepartments()
    {
        using (DiagnosoftDataContext context = new DiagnosoftDataContext())
        {
            return (from c in context.tSubDepartments select c).ToList();

        }
    }
4

2 回答 2

0

尝试这个,

if (comboBox1.SelectedItem != null)
            {
                int x = int.Parse(comboBox1.SelectedItem.ToString());

                var subDeptInfo =GetDepartmentInfo(x);   
                textBox2.Text = subDeptInfo[0].sdCode.ToString();
                textBox3.Text = subDeptInfo[0].sdName;
                textBox4.Text = subDeptInfo[0].dpCode.ToString();
            }
            else { //Value is null }
于 2013-04-10T14:47:35.300 回答
0

好像和EF没关系。我的猜测是组合框中的值是字符串,而不是整数。所以你可以试试

int.Parse(comboBox1.SelectedValue)

代替

(int)comboBox1.SelectedValue

如果这不起作用,那么你可能还有其他东西 - 看看是什么样的对象comboBox1.SelectedValue- 它可以是任何东西。这就是您需要将其投射到的位置,然后从那里使用该对象。

于 2013-04-10T14:29:42.340 回答