Asp.net 如何使用<;%#bind(“将varchar与char进行比较?

Asp.net 如何使用<;%#bind(“将varchar与char进行比较?,asp.net,data-binding,casting,char,varchar,Asp.net,Data Binding,Casting,Char,Varchar,我有以下代码: <asp:DropDownList ID="ddlStudyYear" runat="server" SelectedValue='<%# Bind("StudyYearID") %>' DataSourceID="sdsStudyYears" DataTextField="StudyYearID" DataValueField="StudyYearID"></asp:DropDownList> <asp:SqlDataSource ID

我有以下代码:

<asp:DropDownList ID="ddlStudyYear" runat="server" SelectedValue='<%# Bind("StudyYearID") %>' DataSourceID="sdsStudyYears" DataTextField="StudyYearID" DataValueField="StudyYearID"></asp:DropDownList>
<asp:SqlDataSource ID="sdsStudyYears" runat="server" ConnectionString="<%$ ConnectionStrings:ATCNTV1ConnectionString %>" SelectCommand="SELECT StudyYearID FROM tblStudyYears ORDER BY StudyYearID"></asp:SqlDataSource>
我也无法在网上找到它,但是Bind()函数中必须有一种方法告诉它将varchar强制转换为char。或者可能有一个围绕SelectedValue属性的函数来执行强制转换

谢谢你的帮助

谢谢

找到解决方案

我从质疑的角度解决了这个问题

我将查询更改为

SELECT RTRIM(CAST(CASE WHEN StudyYearID = '0' THEN ' ' ELSE StudyYearID END AS VARCHAR(3))) AS StudyYearID FROM tblStudyYears
我知道CAST()是超级函数,但RTRIM()就是它的功用,但是强制返回值与gridview数据源中的VARCHAR()相同,现在两者都比较完美

如果能知道我是如何完全通过bind()函数来实现这一点的,那就太好了

SELECT RTRIM(CAST(CASE WHEN StudyYearID = '0' THEN ' ' ELSE StudyYearID END AS VARCHAR(3))) AS StudyYearID FROM tblStudyYears