使用BindingSource和更多表的文本框

时间:2014-04-20 22:45:57

标签: c# visual-studio-2010 binding textbox

在我的表单上有一个列表框,其中包含来自table1的电影标题,如果从列表框中选择一个,则可以看到text2中绑定来自table1的所有电影数据。

但是我有另一张表包含关于所选电影的+数据,但我不知道如何设置文本框,因为如果我只是从table2选择bindingsource它将无法识别电影我需要连接他们......

你能帮我解决一下吗?

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

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

但我需要来自table2的连接数据才能在文本框中显示

1 个答案:

答案 0 :(得分:0)

您是否尝试过在两个表之间进行连接?

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

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;