后台-插件-广告管理-内容页广告位一(手机)

您现在的位置是:首页 > 开发类 > 问答问答

SqlDataSource中Parameter.DefaultValue如何才能成为Null

2021-07-06 20:36:36问答人已围观

简介 <asp:DropDownList ID="DropDownList1" runat="server"
DataSourceID="SqlDataSource1" DataTextField="RoleName" DataValueField="RoleKey">
</asp:DropDo

<asp:DropDownList ID="DropDownList1" runat="server"
DataSourceID="SqlDataSource1" DataTextField="RoleName" DataValueField="RoleKey">
</asp:DropDownList>
<asp:SqlDataSource ID="SqlDataSource1" runat="server"
ConnectionString="<%$ ConnectionStrings:LOADBConnectionString %>"
SelectCommandType="StoredProcedure"
SelectCommand="PR_GetRoles">
<SelectParameters>
<asp:Parameter Name="IsPublicReg" Type="Boolean" />
</SelectParameters>
</asp:SqlDataSource>

PR_GetRoles是这样的:

ALTER PROCEDURE [dbo].[PR_GetRoles]

(
@IsPublicReg bit
)

AS
SELECT * FROM [RoleInfo]
WHERE IsPublicReg=@IsPublicReg OR @IsPublicReg IS NULL

我希望的结果是,当不指定DefaultValue时,SqlDataSource传给PR_GetRoles的参数@IsPublicReg是NULL,得到所有结果;当指定IsPublicReg时,按其值得到数据。但实际情况是不指定DefaultValue得不到任何数据,指定则按其值得到结果。

如果不使用Parameter,即去除<asp:Parameter Name="IsPublicReg" Type="Boolean" />则能得到所有数据。

如果使用sql management studio执行此存储过程时传入空值,则能得到所有数据。(即,在sql management studio中测试正常)

不知道我能否表述清楚,如果您不明白我的意思请留言,我的疑点就在:当不指定Parameter.DefaultValue时应该传给PR_GetRoles的值应该为null,(MSDN上这么说的)怎么不是呢?非得删除此查询参数才传null。

(注1:有些地方说bit不能为null,我的测试结果是可以,sql2005.)

最佳答案:

文章来源:https://q.cnblogs.com/q/2715/

Tags:.net技术 ASP.NET 

很赞哦! ()

后台-插件-广告管理-内容页广告位二(手机)

相关文章

后台-插件-广告管理-内容页广告位三(手机)
后台-插件-广告管理-内容页广告位四(手机)

文章评论

留言与评论(共有 0 条评论)
   
验证码:

本栏推荐

站点信息

  • 文章统计90275篇文章
  • 浏览统计10087次浏览
  • 评论统计1个评论
  • 标签管理标签云
  • 统计数据:统计代码
  • 微信公众号:扫描二维码,关注我们