.net – 如何将变量传递给SqlDataSource的SelectCommand?

前端之家收集整理的这篇文章主要介绍了.net – 如何将变量传递给SqlDataSource的SelectCommand?前端之家小编觉得挺不错的,现在分享给大家,也给大家做个参考。
我想把代码中的变量传递给sqlDataSource的SelectCommand?

我不想使用内置的参数类型(如ControlParemeter,QueryStringParameter等)

我需要通过可否?

以下示例不工作

  1. <asp:sqlDataSource ID="sqlDataSource1" runat="server"
  2. ConnectionString="<%$ ConnectionStrings:itematConnectionString %>"
  3. 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">
  4. <SelectParameters>
  5. <asp:Parameter DefaultValue="<%= userId %>" Name="userId" DbType="Guid" />
  6. </SelectParameters>

解决方法

你可以在后面的代码中这样做:
  1. sqlDataSource1.SelectParameters.Add("@userId",userId);

编辑

试试这个,而删除SelectCommand属性和SelectParameters:

  1. <asp:sqlDataSource ID="sqlDataSource1" runat="server"
  2. ConnectionString="<%$ ConnectionStrings:itematConnectionString %>">

然后在后面的代码做这:

  1. sqlDataSource1.SelectParameters.Add("userId",userId.ToString());
  2.  
  3. 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"

这对我工作,这也工作:

  1. <asp:sqlDataSource ID="sqlDataSource1" runat="server"
  2. ConnectionString="<%$ ConnectionStrings:itematConnectionString %>"
  3. 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>
  4.  
  5.  
  6. sqlDataSource1.SelectParameters.Add("userid",DbType.Guid,userId.ToString());

猜你在找的asp.Net相关文章