多表查詢《增刪查改》

整體操作流程如下:

1泌辫、創(chuàng)建完整SQL Server數(shù)據(jù)庫(kù)和表

2阳堕、引用ADO.NET實(shí)體數(shù)據(jù)模型

3、創(chuàng)建EF項(xiàng)目

4蒸殿、編輯DAL類

5筷厘、編輯BLL類

6鸣峭、編寫頁(yè)面代碼

7、編寫視圖后層代碼

8酥艳、添加界面后臺(tái)代碼

9摊溶、運(yùn)程序,修改bug充石,運(yùn)行成功



一莫换、新建數(shù)據(jù)庫(kù),新建兩個(gè)表



二骤铃、設(shè)置兩個(gè)表的主鍵和外鍵拉岁,操作圖如下



表格名字不同,請(qǐng)使用自己的表名


三惰爬、創(chuàng)建項(xiàng)目喊暖,搭建三層架構(gòu)


四、在Model層引用ADO.NET實(shí)體數(shù)據(jù)模型

右鍵Model撕瞧,選擇添加陵叽,選擇新建項(xiàng)目在彈出來(lái)的窗體中選擇數(shù)據(jù)或者Data,在選擇ADO.NET實(shí)體數(shù)據(jù)模型丛版。選擇新建連接選擇來(lái)自數(shù)據(jù)庫(kù)的EF設(shè)計(jì)器巩掺,選擇你所需要的數(shù)據(jù)庫(kù),選擇你所需要的顯示的表硼婿。點(diǎn)擊確認(rèn)即可完成锌半。


五禽车、編寫DAL類寇漫,編寫增刪查改,

1殉摔、查詢州胳,以下有兩種方式

? ? ?查詢所有的表信息

? ? ?public List<Article> Select()

? ? ? ? {

? ? ? ? ? ? //第一種方式

? ? ? ? ? ? /*var reslut = (from u in twoDown.Article

? ? ? ? ? ? ? ? ? ? ? ? ? select u).ToList();

? ? ? ? ? ? return reslut;*/

? ? ? ? ? ? //第二種方式

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

? ? ? ? }


2、 根據(jù)類別查詢

public List<Article> SelectByCatelogId(int id)

? ? ? ? {

? ? ? ? ? ? var reslut = from u in twoDown.Article

? ? ? ? ? ? ? ? ? ? ? ? where u.Typt == id

? ? ? ? ? ? ? ? ? ? ? ? select u;

? ? ? ? ? ? return reslut.ToList();

? ? ? ? }


3逸月、查詢作者栓撞,以下兩種方式

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();

? ? ? ? }


4、多表進(jìn)行連接

public object Query()

? ? ? ? {

? ? ? ? ? ? var reslut = (from a in twoDown.Article

? ? ? ? ? ? ? ? ? ? ? ? ? join c in twoDown.Catelog on a.Typt equals c.Id

? ? ? ? ? ? ? ? ? ? ? ? ? select new {編號(hào)=a.Id ,標(biāo)題=a.Title,作者= a.Anthor,內(nèi)容= a.Content,類別= a.Typt,Typt=c.TypeName });

? ? ? ? ? ? return reslut.ToList();

? ? ? ? }


5碗硬、根據(jù)ID查詢表信息

public Article Select(int id)

? ? ? ? {

? ? ? ? ? ? var reslut = (from u in twoDown.Article

? ? ? ? ? ? ? ? ? ? ? ? ? where u.Typt == id

? ? ? ? ? ? ? ? ? ? ? ? ? select u).Single();

? ? ? ? ? ? return reslut;

? ? ? ? }


6瓤湘、添加文章????

public int Add(Article article)

? ? ? ? {

? ? ? ? ? ? twoDown.Article.Add(article);

? ? ? ? ? ? int count = twoDown.SaveChanges();

? ? ? ? ? ? return count;

? ? ? ? }


7、根據(jù)ID刪除指定用戶的信息

public int DeleteById(int id)

? ? ? ? {

? ? ? ? ? ? var reslut = (from u in twoDown.Article

? ? ? ? ? ? ? ? ? ? ? ? where u.Id == id

? ? ? ? ? ? ? ? ? ? ? ? select u).FirstOrDefault();

? ? ? ? ? ? twoDown.Article.Remove(reslut);

? ? ? ? ? ? return twoDown.SaveChanges();

? ? ? ? }


8恩尾、刪除

public int Delete(Article article)

? ? ? ? {

? ? ? ? ? ? twoDown.Article.Remove(article);

? ? ? ? ? ? int count = twoDown.SaveChanges();

? ? ? ? ? ? return count;

? ? ? ? }


9弛说、修改

public int Update(Article article)

? ? ? ? {

? ? ? ? ? ? twoDown.Entry<Article>(article).State = EntityState.Modified;

? ? ? ? ? ? int count = twoDown.SaveChanges();

? ? ? ? ? ? return count;

? ? ? ? }


六、編寫另外一個(gè)DAL類

private TwoDownEntities TD = new TwoDownEntities();


? ? ? ? public List<Catelog> Select()

? ? ? ? {

? ? ? ? ? ? var reslut = from c in TD.Catelog

? ? ? ? ? ? ? ? ? ? ? ? select c;

? ? ? ? ? ? return reslut.ToList();

? ? ? ? }


七翰意、編寫B(tài)LL類

1木人、添加一個(gè)私有字段信柿,用于調(diào)數(shù)據(jù)訪問對(duì)象

public ArticleDAO aAdo = new ArticleDAO();

2、查詢所有表信息

public List<Article> Select()

? ? ? ? {

? ? ? ? ? ? return Articles.Select();

? ? ? ? }


? ? ? ?3醒第、查詢根據(jù)作者

? ?public List<Article> Select(string art)

? ? ? ? {

? ? ? ? ? ? return Articles.Select(art);

? ? ? ? }


? ? ? ? 4渔嚷、根據(jù)類別查詢

? ? ? public List<Article> SelectByCatelogId(int id)

? ? ? ? {

? ? ? ? ? ? return Articles.SelectByCatelogId(id);

? ? ? ? }


? ? ? ?5、 多表連接查詢

? ? ? ? public object Query()

? ? ? ? {

? ? ? ? ? ? return Articles.Query();

? ? ? ? }


? ? ? ?6稠曼、 根據(jù)id查詢信息

? ? ? ?public Article Select(int id)

? ? ? ? {

? ? ? ? ? ? return Articles.Select(id);

? ? ? ? }


? ? ?7形病、 添加文章

? ? ?public int AddArticle(Article article)

? ? ? ? {

? ? ? ? ? ? return Articles.Add(article);

? ? ? ? }


? ? ? ?8、根據(jù)id來(lái)刪除

? ? ? ?public int DeleteById(int id)

? ? ? ? {

? ? ? ? ? ? return Articles.DeleteById(id);

? ? ? ? }


? ? ?9霞幅、 刪除

? ? ? public int Delete(Article article)

? ? ? ? {

? ? ? ? ? ? return Articles.Delete(article);

? ? ? ? }


? ? ? 10? 窒朋、 修改

? ? public int Update(Article article)

? ? ? ? {

? ? ? ? ? ? return Articles.Update(article);

? ? ? ? }


? ? ? ?11、編輯

? ? ? ? public int Update(int Id,string Title,string Anthor,string Content,int Typt,string Sun)

? ? ? ? {

? ? ? ? ? ? Article article = new Article();

? ? ? ? ? ? article.Id = Id;

? ? ? ? ? ? article.Title = Title;

? ? ? ? ? ? article.Anthor = Anthor;

? ? ? ? ? ? article.Content = Content;

? ? ? ? ? ? article.Typt = Typt;

? ? ? ? ? ? article.Sun = Sun;

? ? ? ? ? ? return Articles.Update(article);

? ? ? ? }


八蝗岖、在另外一個(gè)BLL類編寫代碼侥猩,如下

private CatelogDAO Catelog = new CatelogDAO();

? ? ? ? public List<Catelog> Select()

? ? ? ? {

? ? ? ? ? ? return Catelog.Select();

? ? ? ? }


九、編寫視圖層?右鍵web項(xiàng)目抵赢,選擇添加欺劳,選擇新建窗體,轉(zhuǎn)到設(shè)計(jì)視圖铅鲤,用工具欄拖控件到設(shè)計(jì)視圖完成界面設(shè)計(jì)划提,



1、首先邢享,先編寫添加信息和作者代碼

<asp:HyperLink ID="HyperLink1" runat="server" NavigateUrl="~/Add.aspx">添加信息</asp:HyperLink>


? ? ? ? ? ? 作者:<asp:DropDownList ID="DropDownList1" runat="server" AutoPostBack="true" OnSelectedIndexChanged="DropDownList1_SelectedIndexChanged"></asp:DropDownList>


2鹏往、在Grdview控件綁定數(shù)據(jù)生成之后代碼如下:

<asp:GridView ID="GridView1" runat="server" AutoGenerateColumns="False" DataSourceID="ObjectDataSource1" DataKeyNames="Id">

? ? ? ? ? ? ? ? <Columns>

? ? ? ? ? ? ? ? ? ? <asp:BoundField DataField="Id" HeaderText="編號(hào)" SortExpression="Id" />

? ? ? ? ? ? ? ? ? ? <asp:BoundField DataField="Title" HeaderText="標(biāo)題" SortExpression="Title" />

? ? ? ? ? ? ? ? ? ? <asp:BoundField DataField="Anthor" HeaderText="作者" SortExpression="Anthor" />

? ? ? ? ? ? ? ? ? ? <asp:BoundField DataField="Content" HeaderText="內(nèi)容" SortExpression="Content" />

? ? ? ? ? ? ? ? ? ? <asp:BoundField DataField="Typt" HeaderText="類別" SortExpression="Typt" />

? ? ? ? ? ? ? ? ? ? <asp:BoundField DataField="Sun" HeaderText="日期" SortExpression="Sun" />

? ? ? ? ? ? ? ? ? ? <asp:CommandField ShowDeleteButton="True" HeaderText="刪除" />

? ? ? ? ? ? ? ? ? ? <asp:CommandField ShowEditButton="True"? HeaderText="編輯" />

? ? ? ? ? ? ? ? </Columns>

? ? ? ? ? ? </asp:GridView>


3、在加入以下數(shù)據(jù)

<asp:ObjectDataSource ID="ObjectDataSource1" runat="server" SelectMethod="Select" TypeName="BLL.ArticleSerivce" DeleteMethod="DeleteById" UpdateMethod="Update">

? ? ? ? ? ? ? ? <DeleteParameters>

? ? ? ? ? ? ? ? ? ? <asp:Parameter Name="id" Type="Int32" />

? ? ? ? ? ? ? ? </DeleteParameters>

? ? ? ? ? ? ? ? <UpdateParameters>

? ? ? ? ? ? ? ? ? ? <asp:Parameter Name="Id" Type="Int32" />

? ? ? ? ? ? ? ? ? ? <asp:Parameter Name="Title" Type="String" />

? ? ? ? ? ? ? ? ? ? <asp:Parameter Name="Anthor" Type="String" />

? ? ? ? ? ? ? ? ? ? <asp:Parameter Name="Content" Type="String" />

? ? ? ? ? ? ? ? ? ? <asp:Parameter Name="Typt" Type="String" />

? ? ? ? ? ? ? ? ? ? <asp:Parameter Name="Sun" Type="String" />

? ? ? ? ? ? ? ? </UpdateParameters>

? ? ? ? ? ? </asp:ObjectDataSource>


十骇塘、在下面這個(gè)視圖層編寫網(wǎng)頁(yè)


<div>

? ? ? ? ? ? <b>添加文章</b>

? ? ? ? ? ? <div class="row">

? ? ? ? ? ? ? ? <div class="cols-4">

? ? ? ? ? ? ? ? ? ? 標(biāo)題:

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


? ? ? ? ? ? ? ? <div class="cols-8">

? ? ? ? ? ? ? ? ? ? <asp:TextBox ID="TextBox1" runat="server"></asp:TextBox>

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

? ? ? ? ? ? </div>

? ? ? ? ? ? ? <div class="row">

? ? ? ? ? ? ? ? <div class="cols-4">

? ? ? ? ? ? ? ? ? ? 作者:

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


? ? ? ? ? ? ? ? <div class="cols-8">

? ? ? ? ? ? ? ? ? ? <asp:TextBox ID="TextBox2" runat="server"></asp:TextBox>

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

? ? ? ? ? ? </div>

? ? ? ? ? ? ? <div class="row">

? ? ? ? ? ? ? ? <div class="cols-4">

? ? ? ? ? ? ? ? ? ? 內(nèi)容:

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


? ? ? ? ? ? ? ? <div class="cols-8">

? ? ? ? ? ? ? ? ? ? <asp:TextBox ID="TextBox3" runat="server" TextMode="MultiLine"></asp:TextBox>

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

? ? ? ? ? ? </div>

? ? ? ? ? ? ? <div class="row">

? ? ? ? ? ? ? ? <div class="cols-4">

? ? ? ? ? ? ? ? ? ? 類型:

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


? ? ? ? ? ? ? ? <div class="cols-8">

? ? ? ? ? ? ? ? ? ? <asp:DropDownList ID="DropDownList1" runat="server" DataTextField="TypeName" DataValueField="Id" ></asp:DropDownList>

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

? ? ? ? ? ? </div>

? ? ? ? ? ? ? <div class="row">

? ? ? ? ? ? ? ? <div class="cols-4">

? ? ? ? ? ? ? ? ? ? 時(shí)間:

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


? ? ? ? ? ? ? ? <div class="cols-8">

? ? ? ? ? ? ? ? ? ? <asp:TextBox ID="TextBox5" runat="server"></asp:TextBox>

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

? ? ? ? ? ? </div>

? ? ? ? ? ? ? <div class="row">

? ? ? ? ? ? ? ? <div class="cols-4">

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

? ? ? ? ? ? ? ? <div class="cols-8">

? ? ? ? ? ? ? ? ? ? <asp:Button ID="Button1" runat="server" Text="發(fā)表文章" OnClick="Button1_Click" />

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

? ? ? ? ? ? </div>

十一伊履、在這個(gè)視圖層加入類別,連接數(shù)據(jù)

<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">發(fā)布時(shí)間:<%# Eval("Sun") %></label></div>

? ? ? ? ? ? ? ? ? ? ? ? <div class="row">

? ? ? ? ? ? ? ? ? ? ? ? ? ? <%# Eval("Content") %>

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

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

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

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


十三款违、然后你就可以開始運(yùn)行了唐瀑,修改bug,就行了插爹。

最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請(qǐng)聯(lián)系作者
  • 序言:七十年代末哄辣,一起剝皮案震驚了整個(gè)濱河市,隨后出現(xiàn)的幾起案子赠尾,更是在濱河造成了極大的恐慌力穗,老刑警劉巖,帶你破解...
    沈念sama閱讀 219,490評(píng)論 6 508
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件气嫁,死亡現(xiàn)場(chǎng)離奇詭異当窗,居然都是意外死亡,警方通過查閱死者的電腦和手機(jī)杉编,發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 93,581評(píng)論 3 395
  • 文/潘曉璐 我一進(jìn)店門超全,熙熙樓的掌柜王于貴愁眉苦臉地迎上來(lái)咆霜,“玉大人,你說(shuō)我怎么就攤上這事嘶朱《昱鳎” “怎么了?”我有些...
    開封第一講書人閱讀 165,830評(píng)論 0 356
  • 文/不壞的土叔 我叫張陵疏遏,是天一觀的道長(zhǎng)脉课。 經(jīng)常有香客問我,道長(zhǎng)财异,這世上最難降的妖魔是什么倘零? 我笑而不...
    開封第一講書人閱讀 58,957評(píng)論 1 295
  • 正文 為了忘掉前任,我火速辦了婚禮戳寸,結(jié)果婚禮上呈驶,老公的妹妹穿的比我還像新娘。我一直安慰自己疫鹊,他們只是感情好袖瞻,可當(dāng)我...
    茶點(diǎn)故事閱讀 67,974評(píng)論 6 393
  • 文/花漫 我一把揭開白布。 她就那樣靜靜地躺著拆吆,像睡著了一般聋迎。 火紅的嫁衣襯著肌膚如雪。 梳的紋絲不亂的頭發(fā)上枣耀,一...
    開封第一講書人閱讀 51,754評(píng)論 1 307
  • 那天霉晕,我揣著相機(jī)與錄音,去河邊找鬼捞奕。 笑死牺堰,一個(gè)胖子當(dāng)著我的面吹牛,可吹牛的內(nèi)容都是我干的缝彬。 我是一名探鬼主播萌焰,決...
    沈念sama閱讀 40,464評(píng)論 3 420
  • 文/蒼蘭香墨 我猛地睜開眼哺眯,長(zhǎng)吁一口氣:“原來(lái)是場(chǎng)噩夢(mèng)啊……” “哼谷浅!你這毒婦竟也來(lái)了?” 一聲冷哼從身側(cè)響起奶卓,我...
    開封第一講書人閱讀 39,357評(píng)論 0 276
  • 序言:老撾萬(wàn)榮一對(duì)情侶失蹤一疯,失蹤者是張志新(化名)和其女友劉穎,沒想到半個(gè)月后夺姑,有當(dāng)?shù)厝嗽跇淞掷锇l(fā)現(xiàn)了一具尸體墩邀,經(jīng)...
    沈念sama閱讀 45,847評(píng)論 1 317
  • 正文 獨(dú)居荒郊野嶺守林人離奇死亡,尸身上長(zhǎng)有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點(diǎn)故事閱讀 37,995評(píng)論 3 338
  • 正文 我和宋清朗相戀三年盏浙,在試婚紗的時(shí)候發(fā)現(xiàn)自己被綠了眉睹。 大學(xué)時(shí)的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片荔茬。...
    茶點(diǎn)故事閱讀 40,137評(píng)論 1 351
  • 序言:一個(gè)原本活蹦亂跳的男人離奇死亡,死狀恐怖竹海,靈堂內(nèi)的尸體忽然破棺而出慕蔚,到底是詐尸還是另有隱情,我是刑警寧澤斋配,帶...
    沈念sama閱讀 35,819評(píng)論 5 346
  • 正文 年R本政府宣布孔飒,位于F島的核電站,受9級(jí)特大地震影響艰争,放射性物質(zhì)發(fā)生泄漏坏瞄。R本人自食惡果不足惜,卻給世界環(huán)境...
    茶點(diǎn)故事閱讀 41,482評(píng)論 3 331
  • 文/蒙蒙 一甩卓、第九天 我趴在偏房一處隱蔽的房頂上張望鸠匀。 院中可真熱鬧,春花似錦逾柿、人聲如沸狮崩。這莊子的主人今日做“春日...
    開封第一講書人閱讀 32,023評(píng)論 0 22
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽(yáng)睦柴。三九已至,卻和暖如春毡熏,著一層夾襖步出監(jiān)牢的瞬間坦敌,已是汗流浹背。 一陣腳步聲響...
    開封第一講書人閱讀 33,149評(píng)論 1 272
  • 我被黑心中介騙來(lái)泰國(guó)打工痢法, 沒想到剛下飛機(jī)就差點(diǎn)兒被人妖公主榨干…… 1. 我叫王不留狱窘,地道東北人。 一個(gè)月前我還...
    沈念sama閱讀 48,409評(píng)論 3 373
  • 正文 我出身青樓财搁,卻偏偏與公主長(zhǎng)得像蘸炸,于是被迫代替她去往敵國(guó)和親。 傳聞我的和親對(duì)象是個(gè)殘疾皇子尖奔,可洞房花燭夜當(dāng)晚...
    茶點(diǎn)故事閱讀 45,086評(píng)論 2 355

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

  • 小陳解說(shuō) 首先要?jiǎng)?chuàng)建好數(shù)據(jù)庫(kù) create database MyDB 然后創(chuàng)建和Article這兩個(gè)表Catel...
    妻奴閱讀 1,854評(píng)論 0 0
  • 小陳解說(shuō) 首先要?jiǎng)?chuàng)建好數(shù)據(jù)庫(kù) create database MyDB 然后創(chuàng)建和Article這兩個(gè)表Catel...
    妻奴閱讀 1,027評(píng)論 0 0
  • --編寫EF題目 1.創(chuàng)建文件夾 2.創(chuàng)建三層架構(gòu) 3.model層連接數(shù)據(jù)庫(kù) 4.編寫增刪查改 5.編寫視圖層 ...
    夜盲癥閱讀 1,656評(píng)論 0 1
  • 小陳解說(shuō) 首先要?jiǎng)?chuàng)建好數(shù)據(jù)庫(kù) create database MyDB 然后創(chuàng)建和Article這兩個(gè)表Catel...
    妻奴閱讀 154評(píng)論 0 0
  • 先建三層構(gòu)造(DataModel搭儒、DAL、BLL) 1.在DAL層添加2個(gè)類 1.> public class ...
    夢(mèng)幻之游閱讀 185評(píng)論 0 0