【问题标题】:How can I get a column value from selected database object in ListBox?如何从 ListBox 中的选定数据库对象中获取列值?
【发布时间】:2013-12-16 11:46:22
【问题描述】:

首先,我必须说我是 LINQ 和 WPF 的新手。

我在数据库中有一个“学生”表,其中包含有关学生的信息(姓名、身份证等)。 我想获取有关在 MainForm 的 ListBox 中选择的学生的信息。

var students = from s in db.Students select s;
listBox.DisplayMemberPath = "name"; 
listBox.ItemsSource = students;

我把所有关于学生的信息放到var student。我只希望学生的name 显示在列表框中。有什么方法可以在不查询数据库的情况下从var students 获取id 列的值? 我的意思是这样的:

var id = listBox.SelectedItem.getValue("id");

【问题讨论】:

  • var id = (Student)listBox.SelectedItem.Id;

标签: c# sql wpf linq linq-to-sql


【解决方案1】:

我认为您想从学生表中检索数据。 我想获取有关在 ListBox 中选择的学生的信息。 所以我希望下面的代码对你有帮助。

代码

var students = from s in db.Students select s;
listBox.DataTextField ="name"; 
listBox.DataValueField = "student_id";
listBox.DataSource = students;
listBox.DataBind();

希望对你有帮助。

【讨论】:

  • 这实际上对我不起作用。如果我能找到它,我会发布解决方案。
【解决方案2】:

我找到了解决方案以及我的代码无法按我想要的方式运行的原因。

首先,解决方法很简单:

只需定义一个来源:

var students = from s in db.Students select s;
StudentsListBox.ItemsSource = students;

现在我可以做一个简单的演员表并检索信息:

var id = ((Student)StudentsList.SelectedItem).id_student;

这个演员之前没有工作,因为我只将 listBox 绑定到一列:

var students = from s in db.Students select s.name;

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2018-06-23
    • 2015-11-07
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多