如何从ListBox中的选定数据库对象获取列值?

时间:2013-11-30 12:02:38

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

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

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

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

我将有关学生的所有信息都放入var student。我只希望在ListBox中显示学生的name。有没有办法从id获取var students列的值而不查询数据库? 我的意思是这样的:

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

2 个答案:

答案 0 :(得分:0)

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

<强>代码

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

我希望它会对你有所帮助。

答案 1 :(得分:0)

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

首先,解决方案非常简单:

只需定义一个来源:

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;