EF下拉框筛选信息

EF下拉框查找
现在我们开始完成下拉框查询
首先我们还是需要开始创建一下项目
创建一个ASP.NET 应用程序(.NET FrameWork)
然后我们需要创建一下空的项目
点击第一个
如图:
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
当这些你们创建完成后
我们要进行创建类库
首先我们要创建三个类库

  1. 视图层类库 Modles
  2. 数据访问层类库 DAL
  3. 业务逻辑层类库 BLL
    类库的创建需要我们右键点击解决方案
    找到添加新建项找到类库即可
    如图:
    在这里插入图片描述
    在这里插入图片描述
    当你这些都做完了
    然后我们需要把类库相互引用
    1.数据访问层 引用 视图层
    2.业务逻辑层 引用 视图层 和 数据访问层
    3.你的创建空的窗体 引用 业务逻辑层 和 视图层
    当你全都引用完之后我们需要开始进行下一步了
    如图:
    在这里插入图片描述
    当你全部引用完成之后
    我们需要在视图层里面添加一个新建项
    点击数据找到 ADO.ENT实体数据模型
    点击添加
    在这里插入图片描述
    然后回跳到另一个窗口 点击第一个
    来自数据库EF设计器
    点击下部
    就会出现一个实体数据模型向导
    然后我们需要点击新建连接
    输入你的SQL server里面的服务器名称
    我们要选择身份验证
    输入你的用户名和密码
    然后需要选择你要连接的数据库名称
    点击确定
    然后就会变成这样 点击是
    进行下一步 下一步
    然后你就会看到出现一个窗口
    你要点击那个表 打勾
    如图:
    在这里插入图片描述
    在这里插入图片描述
    在这里插入图片描述
    在这里插入图片描述
    在这里插入图片描述
    当你看到这个我们就已经完成我们所需的第一步
    在这里插入图片描述
    现在我们要开始第二步了
    现在我们需要找到视图层的App.Config
    点进去找到你的数据库
    如图、代码:
    在这里插入图片描述
 <connectionStrings>
    <add name="TwoDownEntities" connectionString="metadata=res://*/Model1.csdl|res://*/Model1.ssdl|res://*/Model1.msl;provider=System.Data.SqlClient;provider connection string=&quot;data source=DESKTOP-DFAA3LD;initial catalog=TwoDown;user id=老许;password=bugaosuni;MultipleActiveResultSets=True;App=EntityFramework&quot;" providerName="System.Data.EntityClient" />
  </connectionStrings>

然后我们需要把他放在你第一个创建的ASP.NET 应用程序的Web.config里面
现在我们点击Web.config进入
如图:
在这里插入图片描述
当你完成这一步
我们就完成了第二部
下面进行我们的第三步
在我们的视图层找到
如图:
在这里插入图片描述
我们需要右键点击“在对象浏览器中查看” 然后我们就能看到他所在的路径
我们需要复制该路径等下我们需要用到
在这里插入图片描述
当你复制完路径之后我们需要去数据访问层 和 ASP.NET窗体引用这个路径里面的东西
现在我们右键点击数据访问层的引用找到浏览、点击右下角的浏览就会出现下图:
在这里插入图片描述
我们需要把你刚刚复制的路径粘贴到文件名中查询他
然后如下图:
点击添加 确定
在这里插入图片描述
在这里插入图片描述
ASP.NET窗体 也是与 数据访问层相同的操作
当你完成后我们就已经完成了第三步
现在开始进行第四步
因为我们只是需要查询下拉框信息
所以我们进行在数据访问层与 业务逻辑层敲代码了
因为我们是多表
所以我们需要多表连接
我们先进入DAL 数据访问层 每个类库都会有一个Class类 不需要在创建我们只需要正确的命名规范 (自取名+DAO)
在这里插入图片描述
现在我么进入数据访问层的类库中编写代码
查询的代码是:

 public class TwoDAO
    {
        TwoDownEntities twoDown = new TwoDownEntities();
      /// <summary>
        /// 查询所有的表信息
        /// </summary>
        /// <returns></returns>
        public List<Article> Select()
        {
            //第一种方式
            /*var reslut = (from u in twoDown.Article
                          select u).ToList();
            return reslut;*/

            //第二种方式
            return twoDown.Article.Select(p => p).ToList();
        }

现在我们开始编写BLL 业务逻辑层的代码
业务逻辑层跟数据访问层是一样的 都会有一个自带的Class类
现在我们只需要改名 (自带名 + Serivce)
然后点击进去我们开始编写代码
其代码是调用数据访问层里面的代码
如下:

  /// <summary>
        /// 查询所有表信息
        /// </summary>
        /// <returns></returns>
        public List<Article> Select()
        {
            return Articles.Select();
        }

当这些我们都做完了之后我们要开始准备运行了、现在我们需要进入我们第一个创建的ASP.NET 我们一开始创建的是空窗体
所以我们现在需要右键点击添加新建项
如下图:
在这里插入图片描述
找到Web窗体点击添加
如下图:
在这里插入图片描述
当我们这些都弄完后就变成了这样
如下图;
在这里插入图片描述
现在我们需要在Web窗体写入代码;

<form id="form1" runat="server">
        <div>
            <div class="row">
                <label class="cols-5">类别:</label>
                <div class="cols-5">
                    <asp:DropDownList ID="DropDownList1" runat="server" DataTextField="TypeName" DataValueField="Id" OnSelectedIndexChanged="DropDownList1_SelectedIndexChanged" AutoPostBack="true"></asp:DropDownList>
                </div>
            </div>

            <asp:Repeater ID="Repeater1" runat="server">
                <ItemTemplate>
                    <div class="row">
                        <div class="row"></div>
                        <div class="row">
                            <label class="cols-5">作者:<%# Eval("Anthor") %></label>
                            &nbsp &nbsp<label class="cols-5">发布时间:<%# Eval("Sun") %></label></div>
                        <div class="row">
                            <%# Eval("Content") %>
                        </div>
                    </div>
                </ItemTemplate>
            </asp:Repeater>
        </div>
    </form>

我们要在DAL里面在创建一个类
因为我们有两个表
还需要在BLL里面也在创建一个表
如下:
在这里插入图片描述
现在我们要在新的DAO里面编写代码:

private TwoDownEntities TD = new TwoDownEntities();

        public List<Catelog> Select()
        {
            var reslut = from c in TD.Catelog
                         select c;
            return reslut.ToList();
        }

在新BLL里面调用代码

 private OneDAO Catelog = new OneDAO();
        public List<Catelog> Select()
        {
            return Catelog.Select();
        }

现在我们要开始筛选了
我们需要在Two里面编写我们筛选所需的代码
在DAO里面编写我们需要的代码:

 /// <summary>
        /// 查询作者
        /// </summary>
        /// <param name="art"></param>
        /// <returns></returns>
        public List<Article> Select(string art)
        {
            //第一种方式
            /*var reslut = (from u in twoDown.Article
                          select u).ToList();
            return reslut;*/

            //第二种方式
            return twoDown.Article.Select(p => p).ToList();
        }
        
		 /// <summary>
        /// 根据类别查询
        /// </summary>
        /// <param name="id"></param>
        /// <returns></returns>
		public List<Article> GetArticlesById(int id)
        {
            var reslut = from u in twoDown.Article
                         where u.Typt == id
                         select u;
            return reslut.ToList();
        }

现在我们需要在BLL里面调用:

/// <summary>
        /// 查询根据作者
        /// </summary>
        /// <param name="art"></param>
        /// <returns></returns>
        public List<Article> Select(string art)
        {
            return Articles.Select(art);
        }
        
         /// <summary>
        /// 根据类别查询
        /// </summary>
        /// <param name="id"></param>
        /// <returns></returns>
   public List<Article> GetArticlesById(int id)
        {
            return twoDAO.GetArticlesById(id);
        }

现在我们需要Defalut.aspx.cs里编写最后的代码

 private CatelogSerivce catelog = new CatelogSerivce();
        private ArticleSerivce article = new ArticleSerivce();
        protected void Page_Load(object sender, EventArgs e)
        {
            if (!IsPostBack)
            {
                this.DropDownList1.DataSource = catelog.Select();
                this.DropDownList1.DataBind();
                this.Repeater1.DataSource = article.Select();
                this.Repeater1.DataBind();
            }
        }

        protected void DropDownList1_SelectedIndexChanged(object sender, EventArgs e)
        {
            int id = int.Parse(this.DropDownList1.SelectedValue);
            this.Repeater1.DataSource = article.SelectByCatelogId(id);
            this.Repeater1.DataBind();
        }

然后就会变成这样
在这里插入图片描述

你学会了吗?
加油吧 少年!!!

热门文章

暂无图片
编程学习 ·

那些年让我们目瞪口呆的bug

程序员一生与bug奋战&#xff0c;可谓是杀敌无数&#xff0c;见怪不怪了&#xff01;在某知识社交平台中&#xff0c;一个“有哪些让程序员目瞪口呆的bug”的话题引来了6700多万的阅读&#xff0c;可见程序员们对一个话题的敏感度有多高。 1、麻省理工“只能发500英里的邮件” …
暂无图片
编程学习 ·

redis的下载与安装

下载redis wget http://download.redis.io/releases/redis-5.0.0.tar.gz解压redis tar -zxvf redis-5.0.0.tar.gz编译 make安装 make install快链方便进入redis ln -s redis-5.0.0 redis
暂无图片
编程学习 ·

《大话数据结构》第三章学习笔记--线性表(一)

线性表的定义 线性表&#xff1a;零个或多个数据元素的有限序列。 线性表元素的个数n定义为线性表的长度。n为0时&#xff0c;为空表。 在比较复杂的线性表中&#xff0c;一个数据元素可以由若干个数据项组成。 线性表的存储结构 顺序存储结构 可以用C语言中的一维数组来…
暂无图片
编程学习 ·

对象的扩展

文章目录对象的扩展属性的简洁表示法属性名表达式方法的name属性属性的可枚举性和遍历可枚举性属性的遍历super关键字对象的扩展运算符解构赋值扩展运算符AggregateError错误对象对象的扩展 属性的简洁表示法 const foo bar; const baz {foo}; baz // {foo: "bar"…
暂无图片
编程学习 ·

让程序员最头疼的5种编程语言

世界上的编程语言&#xff0c;按照其应用领域&#xff0c;可以粗略地分成三类。 有的语言是多面手&#xff0c;在很多不同的领域都能派上用场。大家学过的编程语言很多都属于这一类&#xff0c;比如说 C&#xff0c;Java&#xff0c; Python。 有的语言专注于某一特定的领域&…
暂无图片
编程学习 ·

写论文注意事项

参考链接 给研究生修改了一篇论文后&#xff0c;该985博导几近崩溃…… 重点分析 摘要与结论几乎重合 这一条是我见过研究生论文中最常出现的事情&#xff0c;很多情况下&#xff0c;他们论文中摘要部分与结论部分重复率超过70%。对于摘要而言&#xff0c;首先要用一小句话引…
暂无图片
编程学习 ·

安卓 串口开发

上图&#xff1a; 上码&#xff1a; 在APP grable添加 // 串口 需要配合在项目build.gradle中的repositories添加 maven {url "https://jitpack.io" }implementation com.github.licheedev.Android-SerialPort-API:serialport:1.0.1implementation com.jakewhart…
暂无图片
编程学习 ·

2021-2027年中国铪市场调研与发展趋势分析报告

2021-2027年中国铪市场调研与发展趋势分析报告 本报告研究中国市场铪的生产、消费及进出口情况&#xff0c;重点关注在中国市场扮演重要角色的全球及本土铪生产商&#xff0c;呈现这些厂商在中国市场的铪销量、收入、价格、毛利率、市场份额等关键指标。此外&#xff0c;针对…
暂无图片
编程学习 ·

Aggressive cows题目翻译

描述&#xff1a; Farmer John has built a new long barn, with N (2 < N < 100,000) stalls.&#xff08;John农民已经新建了一个长畜棚带有N&#xff08;2<N<100000&#xff09;个牛棚&#xff09; The stalls are located along a straight line at positions…
暂无图片
编程学习 ·

剖析组建PMO的6个大坑︱PMO深度实践

随着事业环境因素的不断纷繁演进&#xff0c;项目时代正在悄悄来临。设立项目经理转岗、要求PMP等项目管理证书已是基操&#xff0c;越来越多的组织开始组建PMO团队&#xff0c;大有曾经公司纷纷建造中台的气质&#xff08;当然两者的本质并不相同&#xff0c;只是说明这个趋势…
暂无图片
编程学习 ·

Flowable入门系列文章118 - 进程实例 07

1、获取流程实例的变量 GET运行时/进程实例/ {processInstanceId} /变量/ {变量名} 表1.获取流程实例的变量 - URL参数 参数需要值描述processInstanceId是串将流程实例的id添加到变量中。变量名是串要获取的变量的名称。 表2.获取流程实例的变量 - 响应代码 响应码描述200指…
暂无图片
编程学习 ·

微信每天自动给女[男]朋友发早安和土味情话

微信通知&#xff0c;每天给女朋友发早安、情话、诗句、天气信息等~ 前言 之前逛GitHub的时候发现了一个自动签到的小工具&#xff0c;b站、掘金等都可以&#xff0c;我看了下源码发现也是很简洁&#xff0c;也尝试用了一下&#xff0c;配置也都很简单&#xff0c;主要是他有一…
暂无图片
编程学习 ·

C语言二分查找详解

二分查找是一种知名度很高的查找算法&#xff0c;在对有序数列进行查找时效率远高于传统的顺序查找。 下面这张动图对比了二者的效率差距。 二分查找的基本思想就是通过把目标数和当前数列的中间数进行比较&#xff0c;从而确定目标数是在中间数的左边还是右边&#xff0c;将查…
暂无图片
编程学习 ·

项目经理,你有什么优势吗?

大侠被一个问题问住了&#xff1a;你和别人比&#xff0c;你的优势是什么呢? 大侠听到这个问题后&#xff0c;脱口而出道&#xff1a;“项目管理能力和经验啊。” 听者抬头看了一下大侠&#xff0c;显然听者对大侠的这个回答不是很满意&#xff0c;但也没有继续追问。 大侠回家…
暂无图片
编程学习 ·

nginx的负载均衡和故障转移

#注&#xff1a;proxy_temp_path和proxy_cache_path指定的路径必须在同一分区 proxy_temp_path /data0/proxy_temp_dir; #设置Web缓存区名称为cache_one&#xff0c;内存缓存空间大小为200MB&#xff0c;1天没有被访问的内容自动清除&#xff0c;硬盘缓存空间大小为30GB。 pro…
暂无图片
编程学习 ·

业务逻辑漏洞

身份认证安全 绕过身份认证的几种方法 暴力破解 测试方法∶在没有验证码限制或者一次验证码可以多次使用的地方&#xff0c;可以分为以下几种情况︰ (1)爆破用户名。当输入的用户名不存在时&#xff0c;会显示请输入正确用户名&#xff0c;或者用户名不存在 (2)已知用户名。…