EF查看詳情

小陳解說

首先要?jiǎng)?chuàng)建好數(shù)據(jù)庫(kù)

create database? MyDB

然后創(chuàng)建和Article這兩個(gè)表Catelog

--創(chuàng)建Catelog表create? table? Catelog(

Id int identity(1,1)? primarykey,

Name nvarchar(50),

Comment text,

)

--創(chuàng)建Article表create? table?? Article(?? Id int identity(1,1)? primarykey,

?Title? nvarchar(50),

?Author?? nvarchar(50),

Content?? text,

Time?? datetime?? default(getdate()),

CatelogId? int?? references? Catelog(Id)?? )

然后在兩個(gè)表中加入幾條測(cè)試數(shù)據(jù)

首先打開vs

創(chuàng)建ASP腐缤。Net Web應(yīng)用程序(.NET Framework)項(xiàng)目

之后正確創(chuàng)建三層架構(gòu)和正確的添加引用

創(chuàng)建三個(gè)類庫(kù) Model(數(shù)據(jù)模型層)硼瓣,DAL(數(shù)據(jù)訪問層)坛怪,BLL(業(yè)務(wù)邏輯層)

DAL層引用Model層

BLL引用DAL和Model

web引用BLL以及Model

Model(模型層)

之后在Model層中正確的添加數(shù)據(jù)ADO.Net實(shí)體數(shù)據(jù)模型

右鍵點(diǎn)擊Model添加新建項(xiàng)

找到ADO.Net實(shí)體數(shù)據(jù)模型

選擇來自數(shù)據(jù)庫(kù)的EF設(shè)計(jì)器

點(diǎn)擊下一步來到咱們的數(shù)據(jù)連接

先點(diǎn)新建連接,然后完成身份驗(yàn)證,找到要連接數(shù)據(jù)庫(kù)后點(diǎn)擊下一步

然后選擇實(shí)體框架6.x 繼續(xù)點(diǎn)擊下一步

點(diǎn)開表找到自己要用到的表點(diǎn)擊完成

當(dāng)出現(xiàn)下面這個(gè)就是創(chuàng)建成功了

還有一個(gè)最重要的是迈喉,打開Model層中的App.Config

找到下面代碼

<connectionStrings>

<addname="zhiboDBEntities"connectionString="metadata=res://*/Model1.csdl|res://*/Model1.ssdl|res://*/Model1.msl;provider=System.Data.SqlClient;providerconnectionstring=&quot;datasource=.;initialcatalog=zhiboDB;integratedsecurity=True;MultipleActiveResultSets=True;App=EntityFramework&quot;"providerName="System.Data.EntityClient"/>

</connectionStrings>

然后剪切到web(視圖層)的web.onfig文件中就可以啦

接下來就是DAL(數(shù)據(jù)訪問層)

首先在Model層的引用中找到EntityFramework觅捆,然后右鍵叮雳,在對(duì)象瀏覽器中查看EntityFramework的路徑

然后復(fù)制這個(gè)路徑,在DAL層添加引用妇汗,點(diǎn)擊瀏覽帘不,黏貼之前復(fù)制的路徑,找到EntityFramework和EntityFramework.sqlserver這兩個(gè)文件杨箭,引用就好了寞焙。

使用同樣的方法在web(視圖層)也添加EntityFramework和EntityFramework.sqlserver這兩個(gè)文件的引用

數(shù)據(jù)訪問層

接下來是在DAL層添加DAO類并開始編寫代碼

新建DAO類

先實(shí)例化模型層

MyDBEntities db = new MyDBEntities();

寫入頁(yè)面查詢顯示的方法

? ? ? ? public object Select()

? ? ? ? {

? ? ? ? ? ? return db.Article.Select(p => p).ToList();

? ? ? ? }

然后再寫入添加數(shù)據(jù)的方法

public? int??? Add(Article a ,Catelog c)

{? ?

? ? ? db.Article.Add(a);??

? ? ? ? db.Catelog.Add(c);? ?

? ? ? ? a.CatelogId = c.Id;

returndb.SaveChanges();??

? ? }

再寫入添加頁(yè)面的類型值的下拉框的值方法

public?? object? Select()

{

var? u=from? cin? db.Catelog?

selectc.Name;

return? u;??

? ? }

業(yè)務(wù)邏輯層

BLL層沒有很復(fù)雜的東西,調(diào)用DAO類中我們之前寫的方法就行了

首先是添加service類

然后實(shí)例化DAO

之后就是調(diào)用互婿,代碼如下

DAO da =new? DAO();?

調(diào)用數(shù)據(jù)訪問層的Select方法

實(shí)現(xiàn)主頁(yè)面顯示數(shù)據(jù)

public? object? Select()

{

return da.Select();? ? ?

? }

調(diào)用數(shù)據(jù)訪問層的Add方法

實(shí)現(xiàn)添加返回行數(shù)確認(rèn)

public? bool? Add(Article a, Catelog c)

{

if(da.inset(a,c) !=0)? ? ?

?{

return? true;? ? ? ? ??

}else{

return false;? ? ? ??

? }? ?

? ? }

調(diào)用數(shù)據(jù)訪問層的XialaSelect方法

實(shí)現(xiàn)添加頁(yè)面的類型的值的集合

public?? object? Select(){

return? da.Select();?

?? }

接下來就是視圖層了

創(chuàng)建Select.aspx 和Add.aspx 窗體文件

先添加一個(gè)下拉框控件DropDownList和數(shù)據(jù)控件Repeater

<asp:Repeater ID="Repeater1" runat="server">

? ? ? ? ? ? ? ? <ItemTemplate>

? ? ? ? ? ? ? ? ? ? <div id="app1">

? ? ? ? ? ? ? ? ? ? ? ? <div>

? ? ? ? ? ? ? ? ? ? ? ? ? ? <h1><b><%# Eval ("Title") %></b></h1><br />

? ? ? ? ? ? ? ? ? ? ? ? ? ? <hr />

? ? ? ? ? ? ? ? ? ? ? ? </div>

? ? ? ? ? ? ? ? ? ? ? ? <div>


? ? ? ? ? ? ? ? ? ? ? ? ? <span>作者:<%# Eval ("Author")

%></span><span>發(fā)表時(shí)間:<%# Eval ("Datetime")

%></span><br /><br /></div>

? ? ? ? ? ? ? ? ? ? ? ? <div>

? ? ? ? ? ? ? ? ? ? ? ? ? ? <asp:Label ID="Label1" runat="server" ><%# Eval ("Content") %></asp:Label>


? ? ? ? ? ? ? ? ? ? ? ? ? <asp:LinkButton ID="LinkButton1"

runat="server" CommandName="di" CommandArgument='<%# Eval("ID")

%>' ForeColor="#ccffff"><%# Eval("Content")

%></asp:LinkButton>

? ? ? ? ? ? ? ? ? ? ? ? </div><br /><br />

? ? ? ? ? ? ? ? ? ? </div>

? ? ? ? ? ? ? ? </ItemTemplate>

? ? ? ? ? ? </asp:Repeater>

再通過下面代碼綁定數(shù)據(jù)源

protected void Page_Load(object sender, EventArgs e)

? ? ? ? {?

? ? ? ? ? ? if (!IsPostBack)

? ? ? ? ? ? {

? ? ? ? ? ? ? ? this.DropDownList1.DataSource = services.Selectbyname();

? ? ? ? ? ? ? ? this.DropDownList1.DataBind();

this.Repeater1.DataSource = services.Select();

? ? ? ? ? ? ? ? this.Repeater1.DataBind();

}

? ? ? ? }

然后寫一個(gè)添加頁(yè)面(Add.aspx)的跳轉(zhuǎn)地址

在主頁(yè)面添加HyperLink控件捣郊,并編輯控件的NavigateUrl屬性

添加頁(yè)面

在Add.aspx窗體頁(yè)面添加需要添加的布局

標(biāo)題? ?

內(nèi)容

作者

類型

類型要用到下拉框,這就需要用到我們之前寫的查詢所有類型的方法了

然后將下拉框數(shù)據(jù)進(jìn)行綁定

然后點(diǎn)擊設(shè)計(jì)慈参,在DropDownList上綁定數(shù)據(jù)源

再寫提交按鈕的單擊事件

protected?? void??? Button1_Click? (objectsender, EventArgs e){??

? ? ? ? ? Article a =newArticle();? ??

? ? ? Catelog c =newCatelog();? ? ?

? ? ? a.Title =this.TextBox1.Text;? ? ?

? ? ? a.Content =this.TextBox2.Text;??

? ? ? ? a.Author =this.TextBox3.Text;? ??

? ? ? c.Name =this.TextBox4.Text;? ? ? ??

? a.Time = DateTime.Now;if(hj.inset(a,c))? ? ? ? ? ? {??

? ? ? ? ? ? Response.Redirect("~/select.aspx?msg=添加成功");? ?

? ? ? ? }else{? ? ? ??

? ? ? Response.Write("alert(添加失敗')");? ? ??

? ? }? ? ?

? }

在然后添加成功會(huì)跳轉(zhuǎn)到查詢表頁(yè)面并且顯示出來

現(xiàn)在寫添加頁(yè)面的后臺(tái)代碼呛牲,如下

protected? void?? Page_Load(objectsender, EventArgs e){

if(!IsPostBack)? ? ? ? ??

{

string? msg = Request.QueryString["msg"];

if(!string.IsNullOrEmpty(msg))? ? ? ? ? ? ?

? {? ? ? ? ? ??

? ? ? Response.Write("? alert('添加成功')");? ? ? ?

? ? ? ? }? ? ? ??

? }? ? ??

}

成功后會(huì)顯示添加成功

接下來來添加下拉框,通過下拉框選擇類型進(jìn)行篩選

先找到屬性驮配,取消亂碼情況

在DropDownList控件中添加兩個(gè)屬性娘扩,一個(gè)是AutoPostBack,另一個(gè)是OnSelectedIndexChanged

將AutoPostBack里邊的值設(shè)置為true

在屬性O(shè)nSelectedIndexChanged添加一個(gè)方法

在方法中具體綁定代碼如下:

var data= se.Select(int.Parse(this.DropDownList1.SelectedValue));

this.Repeater1.DataSource =data;

this.Repeater1.DataBind();




接下來來寫查看詳情

首先在Add.aspx中LinkButton控件里邊的兩個(gè)很重要的屬性一個(gè)是CommandName這個(gè)屬性是命名僧凤,我們就用Name畜侦, 另一個(gè)是CommandArgument這個(gè)是綁定的ID,及待會(huì)要進(jìn)行的ID查看躯保,也是進(jìn)行傳值

在repeater控件中添加一個(gè)屬性O(shè)nItemCommand旋膳,該屬性是用來寫方法的


創(chuàng)建新窗體xiangqing.aspx

<div id="app">

? ? ? ? ? ? <asp:Repeater ID="Repeater1" runat="server">

? ? ? ? ? ? ? ? <ItemTemplate>

? ? ? ? ? ? ? ? ? ? <div id="app1">


? ? ? ? ? ? ? ? ? ? ? ? <div>

? ? ? ? ? ? ? ? ? ? ? ? ? ? <h1><b><%# Eval ("Title") %></b></h1><br />

? ? ? ? ? ? ? ? ? ? ? ? ? ? <hr />

? ? ? ? ? ? ? ? ? ? ? ? </div>

? ? ? ? ? ? ? ? ? ? ? ? <div>

? ? ? ? ? ? ? ? ? ? ? ? ? ? <span>作者:<%# Eval ("Author") %></span><span>發(fā)表時(shí)間:<%# Eval ("Datetime") %></span><br /><br /></div>

? ? ? ? ? ? ? ? ? ? ? ? <div>

? ? ? ? ? ? ? ? ? ? ? ? ? ? <asp:Label ID="Label1" runat="server" ><%# Eval ("Content") %></asp:Label>


? ? ? ? ? ? ? ? ? ? ? ? </div><br /><br />

? ? ? ? ? ? ? ? ? ? </div>

? ? ? ? ? ? ? ? </ItemTemplate>

? ? ? ? ? ? </asp:Repeater>

? ? ? ? </div>

在再加載事件中綁定數(shù)據(jù)源

service services = new service();

? ? ? ? protected void Page_Load(object sender, EventArgs e)

? ? ? ? {

ArtService se = new ArtService();

protected void Page_Load(object sender, EventArgs e) {

int id = int.Parse(Request.QueryString["id"]);

this.Repeater1.DataSource = se.Sel(id);

this.Repeater1.DataBind();

}

? ? ? ? }

?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請(qǐng)聯(lián)系作者
  • 序言:七十年代末,一起剝皮案震驚了整個(gè)濱河市途事,隨后出現(xiàn)的幾起案子验懊,更是在濱河造成了極大的恐慌,老刑警劉巖尸变,帶你破解...
    沈念sama閱讀 219,539評(píng)論 6 508
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件义图,死亡現(xiàn)場(chǎng)離奇詭異,居然都是意外死亡召烂,警方通過查閱死者的電腦和手機(jī)碱工,發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 93,594評(píng)論 3 396
  • 文/潘曉璐 我一進(jìn)店門,熙熙樓的掌柜王于貴愁眉苦臉地迎上來奏夫,“玉大人怕篷,你說我怎么就攤上這事⌒镏纾” “怎么了廊谓?”我有些...
    開封第一講書人閱讀 165,871評(píng)論 0 356
  • 文/不壞的土叔 我叫張陵,是天一觀的道長(zhǎng)麻削。 經(jīng)常有香客問我蒸痹,道長(zhǎng)春弥,這世上最難降的妖魔是什么? 我笑而不...
    開封第一講書人閱讀 58,963評(píng)論 1 295
  • 正文 為了忘掉前任叠荠,我火速辦了婚禮匿沛,結(jié)果婚禮上,老公的妹妹穿的比我還像新娘榛鼎。我一直安慰自己俺祠,他們只是感情好,可當(dāng)我...
    茶點(diǎn)故事閱讀 67,984評(píng)論 6 393
  • 文/花漫 我一把揭開白布借帘。 她就那樣靜靜地躺著蜘渣,像睡著了一般。 火紅的嫁衣襯著肌膚如雪肺然。 梳的紋絲不亂的頭發(fā)上蔫缸,一...
    開封第一講書人閱讀 51,763評(píng)論 1 307
  • 那天,我揣著相機(jī)與錄音际起,去河邊找鬼拾碌。 笑死,一個(gè)胖子當(dāng)著我的面吹牛街望,可吹牛的內(nèi)容都是我干的校翔。 我是一名探鬼主播,決...
    沈念sama閱讀 40,468評(píng)論 3 420
  • 文/蒼蘭香墨 我猛地睜開眼灾前,長(zhǎng)吁一口氣:“原來是場(chǎng)噩夢(mèng)啊……” “哼防症!你這毒婦竟也來了?” 一聲冷哼從身側(cè)響起哎甲,我...
    開封第一講書人閱讀 39,357評(píng)論 0 276
  • 序言:老撾萬(wàn)榮一對(duì)情侶失蹤蔫敲,失蹤者是張志新(化名)和其女友劉穎,沒想到半個(gè)月后炭玫,有當(dāng)?shù)厝嗽跇淞掷锇l(fā)現(xiàn)了一具尸體奈嘿,經(jīng)...
    沈念sama閱讀 45,850評(píng)論 1 317
  • 正文 獨(dú)居荒郊野嶺守林人離奇死亡,尸身上長(zhǎng)有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點(diǎn)故事閱讀 38,002評(píng)論 3 338
  • 正文 我和宋清朗相戀三年吞加,在試婚紗的時(shí)候發(fā)現(xiàn)自己被綠了裙犹。 大學(xué)時(shí)的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片。...
    茶點(diǎn)故事閱讀 40,144評(píng)論 1 351
  • 序言:一個(gè)原本活蹦亂跳的男人離奇死亡衔憨,死狀恐怖叶圃,靈堂內(nèi)的尸體忽然破棺而出,到底是詐尸還是另有隱情巫财,我是刑警寧澤盗似,帶...
    沈念sama閱讀 35,823評(píng)論 5 346
  • 正文 年R本政府宣布哩陕,位于F島的核電站平项,受9級(jí)特大地震影響赫舒,放射性物質(zhì)發(fā)生泄漏。R本人自食惡果不足惜闽瓢,卻給世界環(huán)境...
    茶點(diǎn)故事閱讀 41,483評(píng)論 3 331
  • 文/蒙蒙 一接癌、第九天 我趴在偏房一處隱蔽的房頂上張望。 院中可真熱鬧扣讼,春花似錦缺猛、人聲如沸。這莊子的主人今日做“春日...
    開封第一講書人閱讀 32,026評(píng)論 0 22
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽(yáng)。三九已至销钝,卻和暖如春有咨,著一層夾襖步出監(jiān)牢的瞬間,已是汗流浹背蒸健。 一陣腳步聲響...
    開封第一講書人閱讀 33,150評(píng)論 1 272
  • 我被黑心中介騙來泰國(guó)打工座享, 沒想到剛下飛機(jī)就差點(diǎn)兒被人妖公主榨干…… 1. 我叫王不留,地道東北人似忧。 一個(gè)月前我還...
    沈念sama閱讀 48,415評(píng)論 3 373
  • 正文 我出身青樓渣叛,卻偏偏與公主長(zhǎng)得像,于是被迫代替她去往敵國(guó)和親盯捌。 傳聞我的和親對(duì)象是個(gè)殘疾皇子淳衙,可洞房花燭夜當(dāng)晚...
    茶點(diǎn)故事閱讀 45,092評(píng)論 2 355

推薦閱讀更多精彩內(nèi)容

  • 小陳解說 首先要?jiǎng)?chuàng)建好數(shù)據(jù)庫(kù) create database MyDB 然后創(chuàng)建和Article這兩個(gè)表Catel...
    妻奴閱讀 1,027評(píng)論 0 0
  • 1.建表 文章類別表 字段名類型約束IDINT主鍵 自增 非空 唯一Namevarchar(50)非空Commen...
    琴酒_e719閱讀 178評(píng)論 0 0
  • 小陳解說 首先要?jiǎng)?chuàng)建好數(shù)據(jù)庫(kù) create database MyDB 然后創(chuàng)建和Article這兩個(gè)表Catel...
    妻奴閱讀 1,854評(píng)論 0 0
  • 1.建表 文章類別表 字段名類型約束IDINT主鍵 自增 非空 唯一Namevarchar(50)非空Commen...
    琴酒_e719閱讀 155評(píng)論 0 0
  • C#EntityFramework 對(duì)SQL數(shù)據(jù)庫(kù)進(jìn)行增刪改操作(稍微有點(diǎn)基礎(chǔ)就可以看懂,按這個(gè)寫出來饺著,每一步很詳...
    85f27458ca90閱讀 196評(píng)論 0 1