我想把代码中的变量传递给sqlDataSource的SelectCommand?
我不想使用内置的参数类型(如ControlParemeter,QueryStringParameter等)
我需要通过可否?
以下示例不工作
<asp:sqlDataSource ID="sqlDataSource1" runat="server" ConnectionString="<%$ ConnectionStrings:itematConnectionString %>" SelectCommand = "SELECT items.name,items.id FROM items INNER JOIN users_items ON items.id = users_items.id WHERE (users_items.user_id = @userId) ORDER BY users_items.date DESC"> <SelectParameters> <asp:Parameter DefaultValue="<%= userId %>" Name="userId" DbType="Guid" /> </SelectParameters>
解决方法
你可以在后面的代码中这样做:
sqlDataSource1.SelectParameters.Add("@userId",userId);
编辑
试试这个,而删除SelectCommand属性和SelectParameters:
<asp:sqlDataSource ID="sqlDataSource1" runat="server" ConnectionString="<%$ ConnectionStrings:itematConnectionString %>">
然后在后面的代码做这:
sqlDataSource1.SelectParameters.Add("userId",userId.ToString()); sqlDataSource1.SelectCommand = "SELECT items.name,items.id FROM items INNER JOIN users_items ON items.id = users_items.id WHERE (users_items.user_id = @userId) ORDER BY users_items.date DESC"
这对我工作,这也工作:
<asp:sqlDataSource ID="sqlDataSource1" runat="server" ConnectionString="<%$ ConnectionStrings:itematConnectionString %>" SelectCommand = "SELECT items.name,items.id FROM items INNER JOIN users_items ON items.id = users_items.id WHERE (users_items.user_id = @userId) ORDER BY users_items.date DESC"></asp:sqlDataSource> sqlDataSource1.SelectParameters.Add("userid",DbType.Guid,userId.ToString());