2015-03-13 63 views
0

早上好。将3个表格和数据绑定加入组合框

我有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”上失败

+0

该查询仅带有rowid,因为这是您在每个查询中选择的内容,并且因为没有可以绑定到组合的名为“MovieGenre”的字段。你想用这个做什么? – 2015-03-13 14:43:03

+0

我试图让列中的所有值都可以在下拉列表中选择。 因此,所有MovieGenre列的值,即MusicGenre列的ontop,位于PodcastGenre列的顶部。 – 2015-03-13 15:43:33

回答

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(); 

我无法编译/测试我现在在哪里,但应该工作。

+0

GREAT SCOTT!通过jove!我相信我们已经得到它! (需要进一步的额外测试...请保留)... – 2015-03-13 16:05:25