首页 新闻 会员 周边

C#图书馆多条件查询书籍

0
悬赏园豆:5 [已解决问题] 解决于 2013-11-30 22:23

在图书馆系统中,要如何实现查询书籍,比如

查询条件:书籍编号、书名、作者、出版社等;

选择其中一个或多个进行查询!!

求大家给一下思路!!

 

谢谢!

Guo47470的主页 Guo47470 | 初学一级 | 园豆:53
提问于:2013-11-28 16:30
< >
分享
最佳答案
0

查询,对于数据库的select。条件查询,对应where语句,所以多条件,就拼接sql就可以实现。

也可以选择读取数据到List,然后用Linq来筛选(不推荐-书籍信息一般比较多,所以适合在数据库处理好)

收获园豆:5
幻天芒 | 高人七级 |园豆:37175 | 2013-11-29 00:06
其他回答(5)
0
//sql拼接,初始sql

StringBuilder sql = new StringBuilder();

sql.Append("select * from book where 1=1");

if选择书籍编号,sql.append(" and bookno ...");

if选择书名,sql.append(" and bookname ...");
梧桐雨2023 | 园豆:170 (初学一级) | 2013-11-28 16:34

如果同时选择书名和编号:

if(),sql.append("and book_id and book_name");

是这样的吗? 

支持(0) 反对(0) Guo47470 | 园豆:53 (初学一级) | 2013-11-28 16:47

@Guo47470: 分开写比较好控制

if选择书籍编号,sql.append(" and bookno ...");

if选择书名,sql.append(" and bookname ...");

2个同时选的话上面2个sql会拼接的。这样比较灵活.

支持(0) 反对(0) 梧桐雨2023 | 园豆:170 (初学一级) | 2013-11-28 17:24
0

根据条件判断,组合查询,

using (DBContext context = new DBContext())
{
var list = context.book;
if (bookno!= "")
list = list.Where(k => k.BookNo.Contains(bookno));
.......
}

创可贴Y | 园豆:118 (初学一级) | 2013-11-28 16:46
0

使用标签

iEvent | 园豆:529 (小虾三级) | 2013-11-29 08:23
0

参数化条件查询

或写个存储过程

Albert Fei | 园豆:2102 (老鸟四级) | 2013-11-29 14:34
0

你那些查询条件都是 书 这个实体的属性吧?   是的话  就传递书的实体当做参数   然后在DAL层判断各个属性是否为null   是的话就把条件加上去

mushishi | 园豆:230 (菜鸟二级) | 2013-12-25 11:25
清除回答草稿
   您需要登录以后才能回答,未注册用户请先注册