栏目分类:
子分类:
返回
名师互学网用户登录
快速导航关闭
当前搜索
当前分类
子分类
实用工具
热门搜索
名师互学网 > IT > 软件开发 > 后端开发 > .Net

#.NET 使用EF、搭建三层完成查询,模糊查询

.Net 更新时间: 发布时间: IT归档 最新发布 模块sitemap 名妆网 法律咨询 聚返吧 英语巴士网 伯小乐 网商动力

#.NET 使用EF、搭建三层完成查询,模糊查询

使用EF、搭建三层并进行查询及模糊查询
  • 数据库的搭建
    • 数据表的设计
  • 项目的搭建
    • 项目、三层的搭建
    • EF的搭建
  • 功能实现
    • 查询
    • 模糊查询

数据库的搭建 数据表的设计

创建数据库:ForumDB
创建数据表:Articles(文章表)、Users(用户表)
Articles表

字段类型
FID(编号)int
FTitle(标题)nvarchar(200)
FAuthor(作者:外键用户表ID)int
FText(文章)text
FTime(发布时间)datetime
FHit(点击量)int

Users表

字段类型
ID(编号)int
ULogin(账号)nvarchar(50)
UPwd(密码)nvarchar(50)
UName(昵称)nvarchar(50)

设计外键关系

项目的搭建 项目、三层的搭建

数据库搭建完成就要开始创建ASP.NET项目啦
创建一个项目:WebSite
创建完项目后,开始搭建三层架构
首先来搭建Models层添加一个类库项目,取名Models:

类库是.NET Framework的奥,别建错了!
接下来就是DAL(数据访问层)层:也是一个.NET Framework的类库
还有就是BLL(逻辑层)层:同上
建完之后我们会有四个项目,如下:

到了这里,我们还只是搭了个空壳,接下来我们就要开始给这个空壳赋予灵魂。

EF的搭建

在Models层中,我们来添加一个ADO.NET实体数据模型

选择来自数据库的EF设计器

下一步我们选择新建连接,依次输入自己的服务器名称,选择SQL Server身份验证,输入用户名密码,选择我们的数据库

点击确定,我们可以看到下面有一个:

这个就是我们之后要对数据进行操作的时候要调用的一个名字。上面还有一个是或者否的选择要我们去选择,对于这个项目来说并没有什么特殊的数据,所以选择哪一个都可以,如何我们点击下一步,实体框架就选默认的就行。

在这里记得要选择我们要用到的表,其他的暂时不用管。最后点击完成即可,然后我们就可以看到下面这个表了:

还有一个重点!!!我们找到Models层里的App.config文件,在里面找到:


    
  

将这一段复制到WebSite项目里的Web.config文件里
然后找到models层里的引用中的EntityFramework文件,右键选择在对象浏览器中查看

右下角有一行地址,将那行地址复制下来,注意别复制文件名,然后在每一个层里的引用添加上该路径的这两个文件
我们就需要在BLL层右键引用,点击添加引用

然后点击左下方的浏览,然后点击右下角的浏览,根据刚刚复制的路径去找到前面说的那两个文件,然后选择上那两个文件点击添加即可。
接下来我们还要右键项目添加互相的引用关系:DAL引用Models,BLL引用DAL和Models,WebSite引用BLL和Models

然后我们的项目搭建基本就完成了
接下来开始写实现代码

功能实现 查询

首先来实现查询功能,让数据展示出来:
在DAL层创建一个类:ArticlesService
其中首先就要把实体数据模型先实例化一个出来方便使用:

ForumDBEntities db = new ForumDBEntities();

下面是在DAL层中查询的方法:

		/// 
        /// 查询
        /// 
        /// 
        public List GetArticles()
        {
            return db.Articles.Select(u=>u).ToList();
        }

(如果没报错,这段可忽略)db.Articles在这里如果报错的话就ALT+Enter然后安装它需要的那个框架,如果运行报框架错的话,可能就是框架没引用上,我们就需要右键引用,点击添加引用

然后点击左下方的浏览,然后点击右下角的浏览,去找到前面说的那两个文件,然后选择上那两个文件点击添加即可。
然后我们在BLL层中创建ArticlesManager类,首先还是要实例化DAL层里的ArticlesService类,方便方法的调用,代码如下:

		/// 
        /// 查询
        /// 
        /// 
        public List GetArticles()
        {
            return service.GetArticles();
        }

因为我们在DAL层中已经进行的数据查询的操作,所以我们在这里直接返回查出来的集合即可。
接下来,我们在Website中建一个Web窗体Home.aspx
前端代码如下:

	

作者: 标题:

作者 标题 时间 操作
<%# Eval("Users.UName")%> <%# Eval("FTitle")%> <%# Eval("FTime")%> 删除

相对应,在后端,我们首先还是要先把BLL层中的ArticlesManager类实例化出来

ArticlesService service = new ArticlesService();

接下来就是在加载事件中写数据绑定了:

	protected void Page_Load(object sender, EventArgs e)
        {
            if (!IsPostBack)
            {
                Repeater1.DataSource= manager.GetArticles();
                Repeater1.DataBind();
            }
        }

最基本的数据查询就出来了,接下来讲的是模糊查询的方法

模糊查询

DAL层中代码为:

		/// 
        /// 根据标题模糊查询
        /// 
        /// 标题
        /// 
        public List GetArticlesByTitle(string tit)
        {
            return db.Articles.Where(u=>u.FTitle.Contains(tit)).ToList();
        }

Contains(tit)方法就是判断字符串中包含该字符,这里主要就是加了个查询的条件,其他的跟普通查询都一样,接下来我们在BLL层调用这个方法即可:

		/// 
        /// 模糊查询
        /// 
        /// 
        /// 
        public List GetArticlesByTitle(string tit)
        {
            return service.GetArticlesByTitle(tit);
        }

前端按钮的点击事件中,代码如下:

	protected void Button1_Click(object sender, EventArgs e)
        {
            if (TextBox1.Text == string.Empty)
            {
                Repeater1.DataSource = manager.GetArticles();
                Repeater1.DataBind();
            }
            else
            {
                Repeater1.DataSource = manager.GetArticlesByTitle(TextBox1.Text);
                Repeater1.DataBind();
            }
        }

先判断文本框是否为空,如果是空的就查全部,否则就根据条件查询

以上就是本片文章的基本内容,希望能帮助到大家~
如果哪里有问题,可以随时私信我噢,感谢大家支持~

转载请注明:文章转载自 www.mshxw.com
本文地址:https://www.mshxw.com/it/909475.html
我们一直用心在做
关于我们 文章归档 网站地图 联系我们

版权所有 (c)2021-2022 MSHXW.COM

ICP备案号:晋ICP备2021003244-6号