将3个表和数据绑定连接到ComboBox

时间:2015-03-13 14:29:31

标签: c# asp.net linq

早上好。

我有3个具有此布局的表(Sql Server):

   GenreMovies: | RowID | MovieGenre|
   GenreMusic:  |RowID | MusicGenre |
   GenrePodcast:| RowID | PodcastGenre| 

我有一个组合框/下拉列表,我试图填充查询:

       var infoQuery =
                    (from MovieGen in dbContext.GenreMovies
                    select MovieGen.RowID)
                    .Union
                        (from MusicGen in dbContext.GenreMusics
                        select MusicGen.RowID).Union(from PodcastGen in dbContext.GenrePodcasts select PodcastGen.RowID).ToList();


        GridSortSearch.DataTextField = "MovieGenre";
        GridSortSearch.DataSource = infoQuery;
        GridSortSearch.DataBind();

我有两个问题,查询只填充了“RowID” 并且组合框/下拉列表在“DataTextField”

失败

1 个答案:

答案 0 :(得分:0)

就像我说的那样,你需要在结果上返回相同的行以达到你想要的效果。

这样的事情,请注意对选择的更改和DataTextField值的名称。

var infoQuery =
                    (from MovieGen in dbContext.GenreMovies
                    select new { MovieGen.RowID, Genre=MovieGen.MovieGenre})
                    .Union
                        (from MusicGen in dbContext.GenreMusics
                        select new {MusicGen.RowID, Genre=MusicGen.MusicGenre).Union(from PodcastGen in dbContext.GenrePodcasts select new {PodcastGen.RowID, Genre=PodcastGen.PodcastGenre).ToList();


        GridSortSearch.DataTextField = "Genre";
        GridSortSearch.DataSource = infoQuery;
        GridSortSearch.DataBind();

我无法编译/测试我现在的位置,但应该可以正常工作。