用C#寫數據庫大作業


其實一開始我是寫成word文檔的,複製過來圖片很難搞,可以直接下載來看

http://pan.baidu.com/s/1jGzYqma


這個攻略主要面向編程能力弱的同學,很多同學都認爲編程很難,其實編程很簡單,特別是找到類似我這種文章後,需要的只是你的耐心。爲什麼要用C#來講呢,一開始是任務要求是以C#來設計程序,二是C#設計前臺真的很簡單,三是我們已經開始學C#,所以說有些基礎的人看此文檔可以快速開發程序,接下來就來展示21分鐘教你用C#最簡單的方式寫數據庫大作業(大霧)。。

 

編程所需:

(1)      VS2012(這次的例子所使用)。

(2)      C#程序設計及應用教程

 

 

一、數據庫設計

這可以說是本次大作業最主要的工作了,這裏就不詳解了,根據你自己的需求分析設計好數據庫,那我就跳過這步。

 

二、程序開發

我會以最簡單的實現方式來講解一下我們設計本次大作業所需的知識。

 

我們先說下C#吧,它給我的感覺就是熟悉又陌生,置於爲什麼上課老師都講了,這是專門設計拿來打敗JAVA的語言,它將擁有JAVA所有的特點,也有其沒有的優點。

 

接着就是VS2012了,相信前幾次上機,大家對其也是很熟悉了。然後是C#程序缺少不了的基本框架和各種類型的創建,如何不是很熟悉建議複習下前3章。

 

(1)      WPF窗口

本次程序所有窗口都是WPF,因爲我們要使用ADO.NETEntity Framework(微軟建議的數據訪問架構)所需。

 

本次只展示WPF窗口的建立,如果想了解更多的同學可以看書本的第7、8章。

 

首先你要創建一個WPF項目

這裏就把工程名改爲Demo,位置設置好你要放的地方,建立好後

會自動打開主窗口,.xaml後綴打開的就是前臺,多了.cs後綴的就是這個主窗口的後臺代碼,建立好項目後我們可以先放着。

(2)      添加數據庫

這項操作對應書本的第12章,困擾時編程和書本更配哦~

 

在WPF應用程序中,我們可以利用.NET框架提供的數據訪問技術方便地對數據庫進行各種操作,這裏使用的是VS自帶的SQL數據庫,還有很多方法連接,我們就講的是利用實體框架和LINQ to Entities訪問數據庫,其架構封裝被稱爲EDM,ADO.NET實體數據模型。它的設計思路是讓應用程序和實體數據模型交互,實體數據模型再和數據庫交互。廢話不多說直接上圖:

 

右鍵項目名Demo,【添加】新建項,找到數據中的【基於服務的數據庫】

記得更改數據庫名,這裏是Database。【添加】

選擇【實體數據模型】

下一步,選擇【空模型】

點擊【完成】後可能會彈出一個警告框,不用理勾上【不再顯示此信息】,這裏就不展示了,因爲我已經勾上了。。

接着右鍵Model1.edmx 選擇【刪除】,這是自動生成的空模型,並沒有用。

到了這裏我們數據庫就建好了,就可以創建表了,在左側可以看到我們的數據庫,對着表右鍵【新建表】

屬性的創建很簡單,直接點擊表格

填寫屬性名,選擇姓名

(3)      主鍵的自增設置

一般情況下我們會給一個ID號然後讓其每次添加數據後自動加+1。

先選中屬性那行,設置【標識規範】爲true即可,其他屬性的長度也是類似這樣更改的。

(4)      表的創建完成

當你設計好表後先要改表名

將【Table】改成自己想要的名字【名字】

然後就是最關鍵的動作那就是更新,每次操作完了一定要【更新】,要不你之前所做的都白做了,這樣我們就完成了一個表。

(5)      外鍵的設置

對着外鍵【右鍵】,添加新外鍵

然後會發現有錯

【Column】對應自己這個表的某個列,如我的name

【ToTable】對應另一個表的表名,這裏我創建了第二個表Test

【ToTableColumn】對應另一個表的列,此處列名應該要相同而且還要是主鍵,具體可以問度娘。

 

然後記得更新!

(6)      創建實體數據模型

創建完了數據庫就可以創建實體數據模型了,實體框架提供了數據庫優先、模型優先、代碼優先三種開發模型,這裏使用數據庫優先模型。

對着項目右鍵【添加】新建項,選擇ADO.NET實體數據模型,記得改名。

 

選擇數據庫生成

直接下一步

選中所有表然後【完成】,然後可以看到

其中的直線就是我們設置的外鍵(沒有可以不設置)。

(7)      LINQ to Entities 訪問實體對象

數據庫和實體創建完成後我們就可以操作了。

(a)      首先我們要創建一個實體框架上下文,簡而言之就是拿來操作數據庫的類。

實體框架上下文的類是在我們創建實體數據模型時創建的,VS會根據你的數據庫命名來創建出來。

實例化有二種方法,具體可以看書,這裏講的是using塊,

using(var context=new DatabaseEntities())

{

….語句

};

看過前面幾章的同學可能就會發現using塊其實是用來運行後立即釋放其所佔用的資源,因爲操作數據庫會佔用大量資源,我們需要操作後釋放掉,二種方法也是不同的釋放方式。

 

此刻VS2012可能會遇見未發現DatabaseEntities類,這是因爲代碼生成策略爲無,你需先在Model界面下空白處點擊下後將其改爲默認值。

 

關閉後還不行,還需要將二處Context.tt和Model.tt刪除

最後右鍵工程【重新生成】,記得先把Model.edmx界面更改後關掉保存

(b)      數據庫的操作

這裏對應爲書上第5、12章,更多詳情請閱讀。

1.      數據的查詢

這段代碼是我使用的登錄功能實現過程,某些同學注意變通不要全抄,會出錯的!!!

接下來講解下,其實爲了進度我也沒太仔細看LINQ和匿名類型的使用方法,總體而言就是使用簡單,不用聲明類型,就好像以前的Student封裝,就可以簡單的實現。

需要注意的就是:

(1)代碼中的t是可以隨便替換的。

(2)Sql_pw和sql_id還可以用中文替換且不用聲明對象類型,因爲它會自動對應屬性對應的類型。

(3)q則是查詢的結合體,你要操作某行時可以先將其ToList(),然後就像數據一樣【0】,在.屬性出來,屬性名就是你取的名字。

2.      數據的添加

添加的數據沒有報錯爲什麼不見增加?

這裏有個關鍵:那就是我們在VS看到的數據庫是在項目包下的數據庫文件,我們運行時是運行bin\Debug下的數據庫文件,還有

這樣每次運行項目下的數據庫文件都會複製到bin\Debug下,所以我們的操作在關閉程序後是沒有效果的。

3.      數據的更新和刪除

這裏就不講了,其實就是將結果集當成map來操作,操作完就SaveChange(),具體參考書本。

(8)      WPF窗口的使用

瞭解了數據庫的操作,剩下的就是窗口的操作了,控件的具體操作可以參考書本第8章。這裏講下最基本的操作:

1.      控件的生成

先打開窗口前臺,找到工具箱,直接拖進窗口!

如果找不到工具箱或者不小心關閉了可以在視圖下打開。

2.      控件的監聽

                                     點擊按鈕後,點擊閃電標誌

                                    

                                     給點擊命名事件名稱

                                    

                                     然後回車即可

                                    

                                     action方法就是那個按鈕的點擊事件監聽。

3.      窗口的調用和隱藏

新建一個新的窗口名爲DemoWindow

使用不同的方法可以看到是否會隱藏舊的窗口。

4.      Datagrid控件

這個控件可以直接展示我們在數據庫查詢的結果,而且使用簡單,只要給其一個名字再來一句話就可以實現。

 

到這裏就靠你們自己了。。

如果發現有什麼錯誤可以指點出來,本文僅供參考。



發佈了22 篇原創文章 · 獲贊 9 · 訪問量 6萬+
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章