業務層也叫中介層,是網站的精髓,掌控應用程式的商務邏輯。
(文中例子只為說明問題,可以有錯誤地方,不可照抄)
1.串連資料庫
1)開啟sql 串連
2)執行資料庫操作,返回資料 (黃金法制:儘可能晚開啟資料庫,儘快關閉)
3)關閉資料庫連接
建立串連的類是:SqlConnection,指定三個重要的參量:sql執行個體名、訪問資料庫授權資訊、資料庫名
例子:
SqlConnection connection =new sqlconnection connection.connectionstring="Sever=;user id=psd=database=;" connection.Open();
2.提交命令於執行預存程序
1)建立SqlCommand對象:
主要作用是:可以講於資料庫互動的資訊儲存起來,他存放的是要執行的sql語句和預存程序的名字;當然也包括預存程序的參數。
SqlCommand command = new SqlCommand(); comand.Connection = connection; command.CommandText = "Gegdd"; command.CommandType = CommandType.StoreProcedure;
2)執行命令和關閉串連
這是值得自豪的時候,在建立完串連和sqlcommand對象後,就可以準備執行命令了。執行完應該馬上關閉資料庫連接。
這裡將要介紹多種執行方法(Exccute):ExcuteNonQuery、ExcuteScalar和ExcuteReader
ExcuteNonQuery用於執行不返回任何記錄的sql語句和預存程序,如更新、插入、刪除操作時,常用此法。他可以返回一個整數值,用來說明影響的行數。
connectionOpen(); command.ExcuteNonQuety(); command.Close();
ExcuteScalar也是返回一個單值,但是他不是返回一個影響的行數,而是從資料庫裡面讀取的資料,如果用select查詢得到多行資料,那麼返回第一行第一列的資料
ExecuteReader返回多條記錄。他返回一個SqlDataReader對象,一個SqlDataReader對象是以順序向前且唯讀形式逐個 讀取並返回結果的。他的優點它是取數最快的對象,不利的一面是需要開啟串連,在串連關閉前無法使用同一個串連執行其他任何資料庫操作。在我們的解決方案 種,通過SqldataReader取回所有記錄,存入DataTable中(他可以儲存資料而不開啟串連),這樣可以馬上關閉資料庫。
-----------------------------------------------
DataTable的分類是DataSet,他是個非常強大的對象,像一個記憶體中的資料庫,他能儲存資料表、他們的資料類型、表間關係等。正是因為他的負責行,dataset會消耗很多記憶體,所有避免使用他。
------------------------------------------------
經典代碼:
conn.open(); sqldataReader reader=comm.ExecuteReader(); // 和上文所說的,ExcuteReader返回一個SqlDataReader DataTable table=new Datatable(); table.Load(reader); reader.Close(); conn.Closer();