查询条件是传参过来的怎么整啊

hanshuai888 2010-07-27 01:55:37
我想在user.cs文件中写个方法,方法两个参数,一是查询条件,二是排序字段,根据传入参数实现条件查询,如下:

public ArrayList WhereFilter(string whereFilter, string orderstr)
{
popsideDataContext pDC = new popsideDataContext();
ArrayList inof = null;
try
{
var source = from d in pDC.si_new_user where whereFilter select d;
if (orderstr.Length != 0)
{
source = from d in pDC.si_new_user where whereFilter orderby orderstr select d;
}
inof = ArrayList.Adapter(source.ToList());
}
catch
{

}
return inof;

调用时user se = new user();
ArrayList al = se.WhereFilter("username='" + username + "'and password='" + Discuz.Common.Utils.MD5(pwd.Trim()) + "'", "");
可是这样会提示无法将参数whereFilter从string类型转换成bool类型。有没有好的办法能实现这样的功能,请大侠赐教。
...全文
110 6 打赏 收藏 转发到动态 举报
写回复
用AI写文章
6 条回复
切换为时间正序
请发表友善的回复…
发表回复
hanshuai888 2010-07-27
  • 打赏
  • 举报
回复
[Quote=引用 4 楼 lxl_sports 的回复:]
还有 就是 你的用的是linq 那么这是一个 动态的语句 你却用字符串连接 肯定是不行的。。。
就比如:你在sql 中用了一个 字符串拼接一样。。。
declare @sql varchar(100)
set @sql='select * from tableName' 那么现在这个sql 就成了 字符串了 就不是 t-sql 语句了
那么要执行这个就要 用内部的 存储过程来执行了 exe……
[/Quote]
你的意思我明白,我也知道确实这样做不行,可是要实现这样的功能要怎么改呢?
lxl_sports 2010-07-27
  • 打赏
  • 举报
回复
用linq to sql

ctx.ExecuteQuery<T>(string strsql)
这句话转换过来 就可以了 你直接可以在里面传 字符串的sql 语句。。。那么条件你就可以随便给了
lxl_sports 2010-07-27
  • 打赏
  • 举报
回复
还有 就是 你的用的是linq 那么这是一个 动态的语句 你却用字符串连接 肯定是不行的。。。
就比如:你在sql 中用了一个 字符串拼接一样。。。
declare @sql varchar(100)
set @sql='select * from tableName' 那么现在这个sql 就成了 字符串了 就不是 t-sql 语句了
那么要执行这个就要 用内部的 存储过程来执行了 exec (@sql)
hanshuai888 2010-07-27
  • 打赏
  • 举报
回复
[Quote=引用 2 楼 lxl_sports 的回复:]
SQL 语句的问题。。。你断点一下你的sql 语句。。。我估计是 你where 条件后面的sql 写错了。。。或者是 挤到一起了
[/Quote]
这个我确定不是sql语句的问题,确实是因为参数是string类型,而linq查询条件不能把字符串转换成查询语句。应该怎么改呢,其他方法也行,但是必须实现查询条件是参数传进来可变的。
lxl_sports 2010-07-27
  • 打赏
  • 举报
回复
SQL 语句的问题。。。你断点一下你的sql 语句。。。我估计是 你where 条件后面的sql 写错了。。。或者是 挤到一起了
myhope88 2010-07-27
  • 打赏
  • 举报
回复
你的WhereFilter是个字符串,而你这边是属于语句,这样拼肯定不行的啊,我不太了解linq,你可以换种方式执行,看有没有可以直接执行linq的函数或者什么

8,497

社区成员

发帖
与我相关
我的任务
社区描述
.NET技术 LINQ
社区管理员
  • LINQ
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

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