EF下拉框查找
现在我们开始完成下拉框查询
首先我们还是需要开始创建一下项目
创建一个ASP.NET 应用程序(.NET FrameWork)
然后我们需要创建一下空的项目
点击第一个
如图:
当这些你们创建完成后
我们要进行创建类库
首先我们要创建三个类库
- 视图层类库 Modles
- 数据访问层类库 DAL
- 业务逻辑层类库 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="data source=DESKTOP-DFAA3LD;initial catalog=TwoDown;user id=老许;password=bugaosuni;MultipleActiveResultSets=True;App=EntityFramework"" 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>
   <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();
}
然后就会变成这样
你学会了吗?
加油吧 少年!!!
http://www.jiucaihua.cn/news/show-18650.html