2013-12-09 25 views
0

我已經將數據庫附加到了c#應用程序。我有三張表:電影(中,標題,導演,年)審查(中,擺脫,評級日期,明星)和審查員(擺脫,名稱)。我想要下拉列表只顯示列中的ratingDate的年份(避免空年)。然後,我希望將選定值發送到網格視圖,以按所選評論年份中的最高評分順序顯示電影標題和平均評分。每次我運行它它說system.data.dataRowView不包含ratingDate。c#中的下拉列表不包含列

這裏是我有編碼:

--data來源下拉列表

<asp:SqlDataSource ID="yearsreviewed" runat="server" 
    ConnectionString="<%$ ConnectionStrings:ConnectionString %>" 
    SelectCommand="SELECT DISTINCT Year(ratingDate) FROM rating"> 
</asp:SqlDataSource> 

--dropdownlist

<asp:DropDownList ID="ddlYear" runat="server" 
    DataSourceID="yearsreviewed" DataTextField="ratingDate" 
    DataValueField="ratingDate" AutoPostBack="True"> 
</asp:DropDownList> 

--datasource的gridview的

<asp:SqlDataSource ID="bestmovie" runat="server" ConnectionString="<%$  ConnectionStrings:ConnectionString %>" 
    SelectCommand="SELECT movie.title, AVG(rating.stars) AS newRating, rating.ratingDate FROM movie INNER JOIN rating ON movie.mid = rating.mid WHERE (rating.ratingDate IS NOT NULL) AND (YEAR(rating.ratingDate) = @ratingDate) GROUP BY rating.ratingDate, movie.title ORDER BY rating.ratingDate, newRating DESC"> 
    <SelectParameters> 
     <asp:ControlParameter ControlID="ddlYear" Name="ratingDate" PropertyName="SelectedValue" /> 
    </SelectParameters> 
</asp:SqlDataSource>` 

--gridVie w

<asp:GridView ID="gvBestMovie" runat="server" AutoGenerateColumns="False" 
    CellPadding="4" DataSourceID="bestmovie" ForeColor="#333333" 
    GridLines="None"> 
    <AlternatingRowStyle BackColor="White" /> 
     <Columns> 
     <asp:BoundField DataField="title" HeaderText="title" SortExpression="title" /> 
     <asp:BoundField DataField="newRating" HeaderText="newRating" ReadOnly="True" 
       SortExpression="newRating" /> 
     <asp:BoundField DataField="ratingDate" HeaderText="ratingDate" 
       SortExpression="ratingDate" /> 
     </Columns> 
     <EditRowStyle BackColor="#7C6F57" /> 
     <FooterStyle BackColor="#1C5E55" Font-Bold="True" ForeColor="White" /> 
     <HeaderStyle BackColor="#1C5E55" Font-Bold="True" ForeColor="White" /> 
     <PagerStyle BackColor="#666666" ForeColor="White" HorizontalAlign="Center" /> 
     <RowStyle BackColor="#E3EAEB" /> 
     <SelectedRowStyle BackColor="#C5BBAF" Font-Bold="True" ForeColor="#333333" /> 
     <SortedAscendingCellStyle BackColor="#F8FAFA" /> 
     <SortedAscendingHeaderStyle BackColor="#246B61" /> 
     <SortedDescendingCellStyle BackColor="#D4DFE1" /> 
     <SortedDescendingHeaderStyle BackColor="#15524A" /> 
</asp:GridView> 

我已經完成了幾乎完全相同的事情與一個不同的查詢,它工程很好。請幫助我不知道什麼即時失蹤

回答

0

在多年的重新審視的數據源中,您是否嘗試在select語句中使用別名?

SELECT DISTINCT Year(ratingDate) as ratingDate FROM rating 
相關問題