Entity Framework 多条件查询语句不会写

z415353144 2011-12-15 04:50:01
////示範:多條件查詢
using (TestEntities te = new TestEntities())
{
////寫法一
StringBuilder sb = new StringBuilder();

if (!string.IsNullOrEmpty(TextBoxId.Text))
{
sb.Append(" and it.user_id = " + TextBoxId.Text);
}

if (!string.IsNullOrEmpty(TextBoxName.Text))
{
sb.Append(" and it.user_name = '" + TextBoxName.Text + "'");
}

if (!string.IsNullOrEmpty(TextBoxAddress.Text))
{
sb.Append(" and it.user_address = '" + TextBoxAddress.Text + "'");
}

List<user> users;

////取得資料
if (sb.Length != 0)
{
users = te.user.Where(sb.ToString().Substring(4)).ToList();
}
else
{
users = te.user.Select(a => a).ToList();
}

GridView1.DataSource = users;
GridView1.DataBind();
}
sb中有时间的比较大于或小于某个时间断,怎样查询某天的全部记录。
...全文
628 8 打赏 收藏 转发到动态 举报
AI 作业
写回复
用AI写文章
8 条回复
切换为时间正序
请发表友善的回复…
发表回复
w091b 2013-07-08
  • 打赏
  • 举报
回复
引用 7 楼 z415353144 的回复:
悲催,还是用自己的方法试出来了.
分享下
z415353144 2011-12-16
  • 打赏
  • 举报
回复
悲催,还是用自己的方法试出来了.
z415353144 2011-12-15
  • 打赏
  • 举报
回复
[Quote=引用 2 楼 q107770540 的回复:]

C# code

users =from u in te.user select u;
if (!string.IsNullOrEmpty(TextBoxId.Text))
{
users= users.Where(u=>u.user_id ==Convert.ToInt32(TextBoxId.Text));

}

if (!string.IsNull……
[/Quote]这种我用了没有效果.
wanghui0380 2011-12-15
  • 打赏
  • 举报
回复
额,又乱来了

把字符串当委托实现用,除非你自己提供linqproivide才可以

xxx.where(p=>条件1)
.where(p=>条件2)

如果你自己没办法写表达式树解析,也没能力提供linqproivide

那么请分开逐次过滤,反正EF本身是延迟策略,并不会有多少效率问题
orain 2011-12-15
  • 打赏
  • 举报
回复
首先写一个基本的查询,如
var datas = from o in db.Orders select o;
然后:
datas = datss.Where(o => o.xx == 'xx');
datas = datas.Where(c => c.xx.Contains('xx');

但是这种方式吧,只适合拼接 And 的查询,对 Or 的查询拼接是没用的。Or 的查询必须在一个 Where 中完成。
q107770540 2011-12-15
  • 打赏
  • 举报
回复

users =from u in te.user select u;
if (!string.IsNullOrEmpty(TextBoxId.Text))
{
users= users.Where(u=>u.user_id ==Convert.ToInt32(TextBoxId.Text));

}

if (!string.IsNullOrEmpty(TextBoxName.Text))
{
users= users.Where(u=>u.user_name ==TextBoxName.Text );
}

if (!string.IsNullOrEmpty(TextBoxAddress.Text))
{
users= users.Where(u=>u.user_address ==TextBoxAddress.Text );

}
时间比较用:System.Data.Linq.SqlClient.SqlMethods.DateDiffDay()

62,243

社区成员

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

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

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

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