我想把代码中的变量传递给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 %>"
- 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());