关于SQL查询用整型作为条件的通配符的问题。

xuchicuit 2010-09-27 08:09:55
我用一个DropDownList作为SqlDataSource查询参数,如果查询条件是的字段是字符型的就没有问题。

但是如果查询条件是的字段是整型的,那么当DropDownList选择的值就“*”时,就会出错。

当我把整型转成字符型时,虽然不会报错了,但是还是达不到全选的效果(相当于不要when子句)

部分代码如下:

<asp:DropDownList ID="StateFilter" runat="server">
<asp:ListItem Value="*">请选择</asp:ListItem>
<asp:ListItem Value="1">通过审核</asp:ListItem>
<asp:ListItem Value="0">未审核</asp:ListItem>
<asp:ListItem Value="3">审核中</asp:ListItem>
<asp:ListItem Value="2">未过通</asp:ListItem>

</asp:DropDownList>

<asp:SqlDataSource ID="SqlDataSource1" runat="server"
ConnectionString="<%$ ConnectionStrings:youtrubo_bbsConnectionString %>"
SelectCommand="SELECT * FROM [videos] where cast([state] AS nchar(2))=@state>

<SelectParameters>
<asp:ControlParameter ControlID="StateFilter" Name="state"
PropertyName="SelectedValue" />
</SelectParameters>
...全文
88 4 打赏 收藏 转发到动态 举报
写回复
用AI写文章
4 条回复
切换为时间正序
请发表友善的回复…
发表回复
xuchicuit 2010-09-27
  • 打赏
  • 举报
回复
回1楼:请这个好的方法
回2楼:我试过了不行
回如梦大哥:我没懂你的意思,请说详细点。谢谢
wuyq11 2010-09-27
  • 打赏
  • 举报
回复
可以使用ObjectDatasource
方法中读取数据库返回一个只有一列的DataTable,AddNewRow并设置文本为ALL
Value="" 判断
winner2050 2010-09-27
  • 打赏
  • 举报
回复
其他是数字,你突然来个*。又不作警告肯定错误。

把“请选择”改为-1

SELECT * FROM [videos] where [state]=@state or @state=-1
丰云 2010-09-27
  • 打赏
  • 举报
回复
这不是给自己找麻烦吗??
什么不可以,非要用*

62,071

社区成员

发帖
与我相关
我的任务
社区描述
.NET技术交流专区
javascript云原生 企业社区
社区管理员
  • ASP.NET
  • .Net开发者社区
  • R小R
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告

.NET 社区是一个围绕开源 .NET 的开放、热情、创新、包容的技术社区。社区致力于为广大 .NET 爱好者提供一个良好的知识共享、协同互助的 .NET 技术交流环境。我们尊重不同意见,支持健康理性的辩论和互动,反对歧视和攻击。

希望和大家一起共同营造一个活跃、友好的社区氛围。

试试用AI创作助手写篇文章吧