加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 编程开发 > asp.Net > 正文

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

发布时间:2020-12-15 18:53:34 所属栏目:asp.Net 来源:网络整理
导读:我想把代码中的变量传递给SqlDataSource的SelectCommand? 我不想使用内置的参数类型(如ControlParemeter,QueryStringParameter等) 我需要通过可否? 以下示例不工作 asp:SqlDataSource ID="SqlDataSource1" runat="server" ConnectionString="%$ Connectio
我想把代码中的变量传递给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());

(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读