C# 将3个表和数据绑定到一个组合框

C# 将3个表和数据绑定到一个组合框,c#,asp.net,linq,C#,Asp.net,Linq,早上好 我有3个具有此布局的表(Sql Server): GenreMovies: | RowID | MovieGenre| GenreMusic: |RowID | MusicGenre | GenrePodcast:| RowID | PodcastGenre| 我试图用查询填充一个组合框/下拉列表: var infoQuery = (from MovieGen in dbContext.GenreMovies

早上好

我有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”失败,就像我说的,您需要返回相同的结果行以实现所需的结果

类似这样,请注意对selects和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();

我目前无法编译/测试这个,但应该可以工作。

查询只附带rowid,因为这是您在每个查询中选择的内容,并且因为没有名为“MovieGenre”的字段可供组合绑定。你想用这个实现什么?我想让所有列中的值都能在dropdownlist中被选择。所以所有电影类型栏目的价值,音乐频道栏目的顶部,在播客类型栏目的顶部。伟大的斯科特!天哪!我相信我们已经得到了!(需要进一步测试…请稍候)。。。