Namespace(命名空間)的使用

開源中國推出 PaaS@OSC 代碼演示和運行平臺web

做者:飛刀 

關於Namespace(命名空間)的使用經常使用<% @ Import Namespace="System.Data" %>,這是在引用M$爲咱們提供的Namespace,這和ASP不一樣的,咱們贏SP.net必須先引用與咱們操做有關的Namespace後才能使用相應的功能。其實說白了,一個Namespace; 就是一個組件我下面簡單的列舉一些經常使用的Namespace 

<% @ Import Namespace="System.Data" %> 處理數據時用到 
<% @ Import Namespace="System.Data.ADO" % > 使用ADO.net ; 時用到 
<% @ Import Namespace="System.Data.SQL" %> SQL Server 數據庫專用 
<% @ Import Namespace="System.Data.XML" %> 不用看處理XML用到 
<% @ Import Namespace="System.IO" %> 處理文件時用到 
<% @ Import Namespace="System.Web.Util" %> 發郵件時你們會用到 
<% @ Import Namespace="System.Text" %> 文本編碼時用到 

操做數據庫須要的東東 

講解了Namespace,咱們能夠正式來討論數據庫的應用了。從上面的能夠看出,咱們操做數據庫,咱們須要引用下面兩個Namespace 

<% @ Import Namespace="System.Data" %> 
<% @ Import Namespace="System.Data.SQL" %> 

其實System.Data.SQL 能夠用System.Data.ADO來代替,SQL是SQL Server專用,ADO能夠支持任何數據庫(只要在主機上存在相應的驅動就好了,如Access,Mysql,Oracle之類的),這裏因爲飛刀的數據庫是SQL Server,原本能夠用ADO,可是想一想M$單獨把SQL獨立出來,爲什麼不用呢。至於它能帶來多少好處,飛刀沒有測試過,對SQL Server確定要比ADO好一點啦。 

不管是ADO仍是SQL ,他們都有幾個基本的對象用於操做 

Connections 連結到一個數據庫,以便於後面的應用(相似ADO中的Connections) 
Commands 執行SQL語句的地方 
DataReader 讀取執行後返回的數據內容 
DataSet 儲存數據,功能強大,咱們會具體講解 
DataSetCommand 執行SQL語句,並把數據存入DataSet 

這裏面可能最難理解的就是DataSet,咱們先不去管他,先拿軟的開刀 

Connections(SQLConection 或者 ADOConnection) 

它的主要任務就是創建一個與數據庫服務器的聯結 

<% @ Page Language="C#" %> 
<% @ Import Namespace="System.Data" %> 
<% @ Import Namespace="System.Data.SQL" %> 
<Script Language= "C#" Runat= "Server"> 
public void Page_Load(Object src,EventArgs e) 
{ 
stringstrProvider="server=localhost;uid=sa;pwd=;database=aspcn"; 
SQLConnection MyConnection=new SQLConnection(strProvider); 
} 
</script> 

上面咱們創建了一個名爲MyConnection的聯結,就好像咱們在ASP中用ADODB.Connection打開了一個聯結.這個聯結咱們在Command或者DataSetCommand中將會使用. 

它的一些有用的屬性和方法有 

ConnectionString 取得或設置連結數據庫的語句 
ConnectionTimeout 取得或設置連結數據庫的最長時間,也是就超時時間 
DataBase 取得或設置在數據庫服務器上要打開的數據庫名 
DataSource 取得或設置DSN,你們不會陌生吧:) 
Password 取得或設置密碼 
UserID 取得或設置登錄名 
State 取得目前聯結的狀態 
Open() 打開聯結 
Close() 關閉聯結 
Clone() 克隆一個聯結。(呵呵,綿羊能夠Connection我也能夠) 


咱們也經過一個小例子來看看他們的用法: 
SQLConnection myConnection = new SQLConnection(); 
myConnection.DataSource = "mySQLServer"; 
myConnection.Password = ""; 
myConnection.UserID = "sa"; 
myConnection.ConnectionTimeout = 30; 
myConnection.Open(); 
myConnection.Database = "northwind"; 
myConnection.IsolationLevel = IsolationLevel.ReadCommitted 

Commands(SQLCommand 或者 ADOCommand) 

上面的程序中咱們打開了一個聯結,這裏咱們就須要來使用這個,看例子比較好: 

<% @ Page Language="C#" %> 
<% @ Import Namespace="System.Data" %> 
<% @ Import Namespace="System.Data.SQL" %> 
<Script Language="C#" Runat="Server"> 
public void Page_Load(Object src,EventArgs e) 
{ 
stringstrProvider="server=localhost;uid=sa;pwd=;database=aspcn"; 
string strIndex="select * from aspcn where purview='webmaster'"; 
SQLConnection MyConnection=new SQLConnection(strProvider); 
SQLCommand MyCommand = new SQLCommand(strIndex,MyConnection); 
MyConnection.Open(); //打開聯結 
MyCommand.ExecuteNonQuery(); //執行SQL,但不返回任何記錄 
MyConnection.Close(); 
} 
</script> 

在上面的例子中咱們創建SQLCommand對象時引用了兩個參數(strIndex,MyConnection),從源程序中咱們也能夠看出來strIndex表明的是執行的SQL語句,MyConnection是咱們先前創建的聯結.而後咱們就要先打開MyConnnection,而後再執行這個SQL語句。咱們在這裏執行用的是ExecuteNonQuery()方法,這樣不返回記錄集,只是返回受影響的記錄個數。 

這裏咱們打開和關閉數據庫也能夠這樣作。 

stringstrProvider="server=localhost;uid=sa;pwd=;database=aspcn"; 
string strIndex="select * from aspcn where purview='webmaster'"; 
SQLConnection MyConnection=new SQLConnection(strProvider); 
SQLCommand MyCommand = new SQLCommand(strIndex,MyConnection); 
MyCommand.ActiveConnection.Open(); 
MyCommand.ExecuteNonQuery(); 
MyCommand.ActiveConnection.Close(); 

所得結果和先前的同樣。因此執行一條SQL語句有不少種方法。並且還不僅兩種,咱們後面學了DataSetCommand,那打開方法就是N種了:)這就須要看你的習慣和程序的要求了;) 

咱們先來看看Command經常使用的方法和屬性 

ActiveConnection 取得或設置聯結Connections 
CommandText 執行的SQL語句或儲存過程(StoredProcedure)名 
CommandTimeout 執行的最長時間 
CommandType Command操做的類型(StoredProcedure,Text,TableDirect)三種,默認Text 
Parameters 操做儲存過程時使用 
Execute() 執行SQL語句或儲存過程 
ExecuteNonQuery() 同上,區別在於不返回記錄集 
Clone() 克隆Command 


一樣看一個例子: 

string mySelectQuery = "SELECT * FROM Categories ORDER BY CategoryID"; 
stringmyConnectString="userid=sa;password=;database=northwind;server=mySQLServer"; 
SQLCommand myCommand = new SQLCommand(mySelectQuery); 
myCommand.ActiveConnection = new SQLConnection(myConnectString); 
myCommand.CommandTimeout = 15; 
myCommand.CommandType = CommandType.Text; 

原文連接:http://blog.csdn.net/21aspnet/article/details/159998sql

相關文章
相關標籤/搜索