雙表技術(shù)文章

整體操作流程如下:

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è)表的主鍵和外鍵,操作圖如下



三讲逛、創(chuàng)建項(xiàng)目亏吝,搭建三層架構(gòu)



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

右鍵Model盏混,選擇添加蔚鸥,選擇新建項(xiàng)目在彈出來的窗體中選擇數(shù)據(jù)或者Data,在選擇ADO.NET實(shí)體數(shù)據(jù)模型许赃。選擇新建連接選擇來自數(shù)據(jù)庫(kù)的EF設(shè)計(jì)器止喷,選擇你所需要的數(shù)據(jù)庫(kù),選擇你所需要的顯示的表混聊。點(diǎn)擊確認(rèn)即可完成启盛。



五、編寫DAL類技羔,編寫增刪查改僵闯,首先編寫查

1、查詢數(shù)據(jù)

public List<Article> Select()

? ? ? ? {

? ? ? ? ? ? MyDBEntities db = new MyDBEntities();

? ? ? ? ? ? /*var result = from article in db.Article

? ? ? ? ? ? ? ? ? ? ? ? select article;

? ? ? ? ? ? return result.ToList();*/

? ? ? ? ? ? //方法查詢函數(shù)

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

? ? ? ? }

2藤滥、根據(jù)ID查詢

public Article Select(int id)

? ? ? ? {

? ? ? ? ? ? MyDBEntities db = new MyDBEntities();

? ? ? ? ? ? var result =(from article in db.Article

? ? ? ? ? ? ? ? ? ? ? ? where article.Id==id

? ? ? ? ? ? ? ? ? ? ? ? select article).Single();

? ? ? ? ? ? return result;

? ? ? ? }

3鳖粟、添加文章

public int Add(Article article)

? ? ? ? {

? ? ? ? ? ? MyDBEntities db = new MyDBEntities();

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

? ? ? ? ? ? //寫入數(shù)據(jù)庫(kù),保存寫入成功的記錄條數(shù)

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

? ? ? ? ? ? return count;

? ? ? ? }

4拙绊、刪除文章

? ?? public int Remove(Article article)

? ? ? ? {

? ? ? ? ? ? MyDBEntities db = new MyDBEntities();

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

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

? ? ? ? ? ? return count;

? ? ? ? }

5向图、修改文章

public int Update(Article article)

? ? ? ? {

? ? ? ? ? ? MyDBEntities db = new MyDBEntities();

? ? ? ? ? ? //設(shè)置對(duì)象狀態(tài)

? ? ? ? ? ? db.Entry<Article>(article).State = System.Data.Entity.EntityState.Modified;

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

? ? ? ? ? ? return count;

? ? ? ? }


六、編寫B(tài)LL類

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

public ArticleDAO aAdo = new ArticleDAO();

2、添加文章

public int AddArticle(Article article)

? ? ? ? {

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

? ? ? ? }

3金句、查詢所有數(shù)據(jù)

public List<Article> Select()

? ? ? ? {

? ? ? ? ? ? return aAdo.Select();

? ? ? ? }

4檩赢、根據(jù)ID查詢單個(gè)數(shù)據(jù)

public Article Select(int id)

? ? ? ? {

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

? ? ? ? }

5、添加文章违寞,添加數(shù)據(jù)

public int Add(Article article)

? ? ? ? {

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

? ? ? ? }



七贞瞒、編寫視圖層? 右鍵web項(xiàng)目,選擇添加趁曼,選擇新建窗體军浆,轉(zhuǎn)到設(shè)計(jì)視圖,用工具欄拖控件到設(shè)計(jì)視圖完成界面設(shè)計(jì)挡闰,

1乒融、在Grdview控件綁定數(shù)據(jù)生成之后代碼如下:

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

2、添加數(shù)據(jù)

<Columns>

? ? ? ? ? ? ? ? ? ? <asp:BoundField DataField="Id" HeaderText="Id" SortExpression="Id" />

? ? ? ? ? ? ? ? ? ? <asp:BoundField DataField="Title" HeaderText="Title" SortExpression="Title" />

? ? ? ? ? ? ? ? ? ? <asp:BoundField DataField="Author" HeaderText="Author" SortExpression="Author" />

? ? ? ? ? ? ? ? ? ? <asp:BoundField DataField="Coutent" HeaderText="Coutent" SortExpression="Coutent" />

? ? ? ? ? ? ? ? ? ? <asp:BoundField DataField="Catelogid" HeaderText="Catelogid" SortExpression="Catelogid" />

? ? ? ? ? ? ? ? ? ? <asp:BoundField DataField="PushDate" HeaderText="PushDate" SortExpression="PushDate" />

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

3摄悯、連接BLL類自動(dòng)生成數(shù)據(jù)

<asp:ObjectDataSource ID="ObjectDataSource1" runat="server" SelectMethod="Select" TypeName="BLL.AritcleService"></asp:ObjectDataSource>

4赞季、加入一個(gè)Button按鈕

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


八、添加頁(yè)面代碼

<div>

? ? ? ? ? ? 標(biāo)題:<asp:TextBox ID="TextBox1" runat="server"></asp:TextBox>

? ? ? ? ? ? <br />

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

? ? ? ? ? ? <br />

? ? ? ? ? ? 文章內(nèi)容:<asp:TextBox ID="TextBox3" runat="server"></asp:TextBox>

? ? ? ? ? ? <br />

? ? ? ? ? ? 類別:<asp:DropDownList ID="DropDownList1" runat="server" DataTextField="name" DataValueField="id"></asp:DropDownList>

? ? ? ? ? ? <br />

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

? ? ? ? </div>


九射众、編寫視圖層后臺(tái)代碼

1沙兰、引用方法并添加跳轉(zhuǎn)后臺(tái)代碼

AritcleService aritcleService = new AritcleService();

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

? ? ? ? {

? ? ? ? ? ? if (!IsPostBack)

? ? ? ? ? ? {

? ? ? ? ? ? ? ? //定義一個(gè)msg接收添加頁(yè)面?zhèn)鬟^來的msg

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

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

? ? ? ? ? ? ? ? {

? ? ? ? ? ? ? ? ? ? Response.Write("<script>alert('添加成功!')</script>");

? ? ? ? ? ? ? ? }

? ? ? ? ? ? }

? ? ? ? ? ? 添加之后

? ? ? ? ? ? //if (!IsPostBack)

? ? ? ? ? ? //{

? ? ? ? ? ? //? ? Response.Write("<script>alert('新增成功阿迈!')</script>");

? ? ? ? ? ? //}

? ? ? ? }

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

? ? ? ? {

? ? ? ? ? ? Response.Redirect("Add.aspx");

? ? ? ? }


十畦韭、添加后臺(tái)代碼

1、實(shí)例化DAL兩個(gè)類罗洗,展示數(shù)據(jù)愉舔,綁定數(shù)據(jù):

//實(shí)例化DAL兩個(gè)類

private CatelogService catelogService = new CatelogService();

? ? ? ? private AritcleService aritcleService = new AritcleService();

//綁定數(shù)據(jù),展示數(shù)據(jù)

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

? ? ? ? {

? ? ? ? ? ? if (!IsPostBack)

? ? ? ? ? ? {

? ? ? ? ? ? ? ? ? ? ? ? ? ? ?//綁定數(shù)據(jù)

? ? ? ? ? ? ? ? this.DropDownList1.DataSource = catelogService.Select();

? ? ? ? ? ? ? ? ? ? ? ? ? //展示數(shù)據(jù)

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

? ? ? ? ? ? }

? ? ? ? }

2伙菜、在Button里面添加數(shù)據(jù)

protected void Button1_Click(object sender, EventArgs e)

? ? ? ? {

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

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

? ? ? ? ? ? article.Author = this.TextBox2.Text;

? ? ? ? ? ? article.Coutent = this.TextBox3.Text;

? ? ? ? ? ? article.Catelogid = int.Parse(this.DropDownList1.SelectedValue);

? ? ? ? ? ? article.PushDate = DateTime.Now;

? ? ? ? ? ? //聲明一個(gè)變量來接收?qǐng)?zhí)行后的結(jié)果

? ? ? ? ? ? int result= aritcleService.Add(article);

? ? ? ? ? ? //判斷是否添加成功

? ? ? ? ? ? if (result > 0)

? ? ? ? ? ? {

? ? ? ? ? ? ? ? //成功了就執(zhí)行這段代碼

? ? ? ? ? ? ? ? //~/zhuye.aspx這是跳轉(zhuǎn)到的那個(gè)頁(yè)面? ?msg=添加成功給zhuye的msg賦值

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

? ? ? ? ? ? }

? ? ? ? ? ? else

? ? ? ? ? ? {

? ? ? ? ? ? ? ? Response.Write("<script>alert('添加失敗')</script>");

? ? ? ? ? ? }

? ? ? ? ? ? //if (result>0)

? ? ? ? ? ? //{

? ? ? ? ? ? //? ? Response.Redirect("WebForm1.aspx");

? ? ? ? ? ? //}

? ? ? ? }

? ? }

十一轩缤、完成代碼編寫,進(jìn)行調(diào)試,修改bug火的,進(jìn)行運(yùn)行項(xiàng)目壶愤,完成多表操作

?著作權(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)店門,熙熙樓的掌柜王于貴愁眉苦臉地迎上來宵统,“玉大人晕讲,你說我怎么就攤上這事“裉铮” “怎么了益兄?”我有些...
    開封第一講書人閱讀 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)吁一口氣:“原來是場(chǎng)噩夢(mèng)啊……” “哼芥被!你這毒婦竟也來了?” 一聲冷哼從身側(cè)響起脾猛,我...
    開封第一講書人閱讀 39,357評(píng)論 0 276
  • 序言:老撾萬榮一對(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
  • 我被黑心中介騙來泰國(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)容