将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中连接的数据显示在文本框中。
您尝试过两个表之间的联接吗?
首先为连接的两个表的结果创建一个类,类似于:
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;