在前面,我已經說了如何在BETA2的環境下,操作ACCESS數據庫,這次我們來看看如何通過ADO。NET來操作SQL SERVER數據庫!
首先我們要知道,在ADO。NET環境下,我們是通過System.Data.SqlClient這個名字空間來操作的,另外還有一個System.Data.SqlTypes名字空間描述了SQL SERVER的字段類型,但它并不直接參與數據庫的操作,所以我們重點放在System.Data.SqlClient的使用上!
按照慣例,我還是先列出我的例程:這個程序是我在寫一個用戶注冊系統時用到的,先看程序:
using System; using System.Data; using System.Data.SqlClient;
//通過用戶ID號,取得用戶資料 public UserInfo GetUserInfo(string id) { SqlConnection myconn=SohoTool.SetConn();//看備注一myconn.Open(); //設置SQL查詢語句 string selectstr="select * from userinfo where id=" + id ; try{ SqlCommand mycmd = new SqlCommand(selectstr,myconn); SqlDataReader mysqlreader = mycmd.ExecuteReader(); if(mysqlreader.Read())//假如存在該用戶,則錄入需要的屬性! { this.i_id=(int)mysqlreader["id"]; this.s_name=mysqlreader["name"].ToString(); this.s_nicheng=mysqlreader["nicheng"].ToString(); this.s_email=mysqlreader["email"].ToString(); this.s_password=mysqlreader["password"].ToString(); this.s_http=mysqlreader["http"].ToString(); this.s_oicq=mysqlreader["oicq"].ToString(); this.s_tag=mysqlreader["tag"].ToString(); this.i_charm=(int)mysqlreader["charm"]; this.i_score=(int)mysqlreader["score"]; this.i_bbswords=(int)mysqlreader["bbswords"]; this.s_pic=mysqlreader["pic"].ToString(); this.d_regtime=(DateTime)mysqlreader["regtime"]; } else { throw(new Exception("沒有該用戶!" )); } } catch(Exception e) { throw(new Exception("數據庫操作發生錯誤!" + e.Message)); } myconn.Close(); return(this); }
上面的程序實現的是:通過用戶的ID號來取得用戶個人資料的,下面我們看看程序中有什么新的東西!
首先我們開程序開始處引入了名字空間System.Data.SqlClient;這樣我們就可以用它來操作SQL數據庫了!
1.在函數開始我們通過SqlConnection myconn=SohoTool.SetConn(); 得到SQL數據庫的連接。
2.設置了SQL查詢語句后,我們又定義了一個SqlCommand對象,并實例化,其實在ADO。NET中大部分SQL語句都能很方便的用Command來執行,但是如果和DateSet結合的話,就要引入其它的一些東西了,這個到后面我們在說!
3.定義SqlDataReader對象,并通過SqlCommand對象執行SQ語句,然后 將結果存入 SqlDataReader對象中,語句如下:SqlDataReader mysqlreader = mycmd.ExecuteReader();
4.設置屬性,并返回需要的結果
看了我前面文章的人,應該都能感覺到,其實操作SQL數據庫原來和操作ACCESS數據庫并沒有什么區別嘛,無非是名字空間、COMMAND、READER的寫法變了個樣呀!呵呵,實際情況也幾乎就是這樣的!
備注一、上面程序中我得到SQL數據庫連接是用的我自己的類,下面我吧這個程序也寫出來! namespace Soholife { using System; using System.Data; using System.Data.SqlClient;
public class SohoTool { //建立與SQL數據庫的連接 public static SqlConnection SetConn() { string connstr="server=soho;database=soholife;uid=sa;pwd=;"; SqlConnection tempconn= new SqlConnection(connstr); return(tempconn); } } } 這個程序我想不需要什么解釋的吧,用處就是得到數據庫連接,有些個人體會是, BETA1下,我們可以通過繼承CONNECTION,來建立自己的CONNECTION類,而在BETA2下,卻無法這樣做了,不知道為什么要把CONNECTION類作成密封的形式!
好了,這次就先寫到這里,下一次,我把會說說如何通過SqlCommand對象執行UPDATE、INSERT、DELETE語句!如果朋友們有問題也可以給我寫信討論!
|