asp:sqldatasource SelectCommandType =" Text"仅在将参数传递给SQL时才会填充下拉列表

时间:2012-05-01 17:27:25

标签: asp.net

我正在尝试使用带有参数的SQL Select驱动的asp:SqlDataSource。只要我没有任何参数,它就可以工作。我可以通过studio运行参数化查询,它可以工作并返回行。如果我有任何参数,则asp:View不会呈现。

首先,当我通过Studio执行SQL时,代码返回2行。 其次,我不希望它作为存储过程。部署问题。微笑,放手吧。 :-)


<asp:DropDownList ID="lstUsers" runat="server" DataSourceID="sqlGetCSGUsersOnClaim" DataTextField="username" DataValueField="userID" />

<asp:SqlDataSource ID="sqlGetCSGUsersOnClaim" runat="server" ConnectionString="<%$ ConnectionStrings:SiteSqlServer%>" SelectCommandType="Text" SelectCommand="
SELECT aspnet_Users.UserId as userID, aspnet_users.username as username
FROM claims, aspnet_Users
WHERE claims.claimid = @ClaimID and 
(Claims.AdjusterID = aspnet_Users.UserId or Claims.SupervisorID = aspnet_Users.UserId )">
<SelectParameters>
   <asp:SessionParameter Name="ClaimID" SessionField="ClaimID" Type="Int32" DbType="Int32" />
</SelectParameters>
</asp:SqlDataSource>

如果我删除了@ClaimIDSelectParameters参数,则下拉列表会填充。添加参数后,它才会失败。

我做错了什么?

提前致谢, 杰森

1 个答案:

答案 0 :(得分:0)

好吧,如果我删除了SelectParameter的Type和DBType属性,那么代码就可以了。叹息....

我不知道,为什么呢。