我有一个Combobox从我的数据库中获取数据。
var people = (from x in db.Person select new { Value = x.Id, Names = x.Namn + " " + x.EfterNamn }).ToList();
cbpeople.DataSource = people;
cbpeople.DisplayMember = "Names";
cbpeople.ValueMember = "Value";
cbpeople.SelectedIndex = -1;
我有SelectedIndex函数
int id = cbpeople.SelectedIndex + 1;
string namn = (from x in db.Person where x.Id == id select x.Namn).ToString();
lblNamn.Text = namn;
正如您所看到的,我试图让它从数据库中的同一行中选择信息并将它们放在标签中。 (" cbpeople.SelectedIndex + 1;"是因为我无法从SelectedValue获取ID)。
但所有打印出来的都是这个长而不是名字(在标签上)
"SELECT \r\n [Extent1].[Namn] AS [Namn]\r\n FROM [dbo].[Person] AS [Extent1]\r\n WHERE [Extent1].[Id] = @p__linq__0"
我做错了什么?
答案 0 :(得分:1)
您通过IQueryable对象调用ToString()。当然,它将返回它的SQL表示。要执行查询,您可以执行以下操作:
string namn = (from x in db.Person where x.Id == id select x.Namn).Single();