将BindingSource与更多表一起使用的文本框

本文关键字:文本 一起 BindingSource | 更新日期: 2023-09-27 17:59:04

在我的表单上有一个列表框,其中包含表1中的电影标题,如果您从列表框中选择一个,您可以在绑定表1中源的文本框中看到所有电影数据。

然而,我有另一个表,其中包含关于所选电影的+数据,但我不知道如何将文本框设置为该值,因为如果我只是从表2中选择绑定源,它将无法识别电影,不知何故,我需要连接它们…

你能帮我解决问题吗?

这就是我添加表1的方式,这样当用户在文本框中键入时,它可以过滤列表框并选择电影

var h = from s in db.Filmek where s.Filmcim.StartsWith(textBox1.Text) select s;
            filmekBindingSource1.DataSource = h;

但我也需要表2中连接的数据显示在文本框中。

将BindingSource与更多表一起使用的文本框

您尝试过两个表之间的联接吗?

首先为连接的两个表的结果创建一个类,类似于:

public class MovieResult
{
      public int MovieId {get;set;}
      public string MovieTitle {get;set;}
      //Other properties of table one
      //Properties of table two
}

然后修改您的查询,使其看起来像:

var result = from movie in db.Filmek 
where movie.Filmcim.StartsWith(textBox1.Text) 
join anotherTable in db.OtherTable on movie.FilmId equals anotherTable.FilmId
selecte new MovieResult
{
   MovieId = movie.Id,
   MovieTitle = movie.Title,
   //Fill the properties of table one
   //Fill the properties of table two, ex. if table two contains a field named Country
   Country = anotherTable.CountryName //etc
}

最后将其绑定到结果:

filmekBindingSource1.DataSource = result;