如何使用connection物件連線資料庫?對於不同的.net資料提供者,ado.net採用不同的connection物件連線資料庫。這些connection物件為我們遮蔽了具體的實現細節,並提供了一種統一的實現方法。
connection類有四種:sqlconnection,oledbconnection,odbcconnection和oracleconnection。
sqlconnection類的物件連線sql server資料庫;oracleconnection 類的物件連線oracle資料庫;oledbconnection類的物件連線支援ole db的資料庫,如access;而odbcconnection類的物件連線任何支援odbc的資料庫。與資料庫的所有通訊最終都是通過connection物件來完成的。
sqlconnection類
connection 用於與資料庫「對話」,並由特定提供程式的類(如 sqlconnection)表示。儘管sqlconnection類是針對sql server的,但是這個類的許多屬性、方法與事件和oledbconnection及odbcconnection等類相似。
注意:使用不同的connection物件需要匯入不同的命名空間。oledbconnection的命名空間為system.data.oledb。sqlconnection的命名空間為system.data.sqlclient。odbcconnection的命名空間為system.data.odbc。oracleconnection的命名空間為system.data.oracleclinet。
我們就可以使用如下兩種方式連線資料庫,即採用整合的windows驗證和使用sql server身份驗證進行資料庫的登入。
1、整合的windows身份驗證語法範例
string constr = "server=.;database=myschool;integrated security=sspi";
說明:程式**中,設定了乙個針對sql server資料庫的連線字串。其中server表示執行sql server的計算機名,由於程式和資料庫系統是位於同一臺計算機的,所以我們可以用.(或localhost)取代當前的計算機名。database表示所使用的資料庫名(myschool)。由於我們希望採用整合的windows驗證方式,所以設定 integrated security為sspi即可。
2、sql server 2005中的windows身份驗證模式如下:
string constr = "server=.;database=myschool;uid=sa;pwd=sa";
說明:程式**中,採用了使用已知的使用者名稱和密碼驗證進行資料庫的登入。資料庫連線字串是不區分大小寫的。uid為指定的資料庫使用者名稱,pwd為指定的使用者口令。為了安全起見,一般不要在**中包括使用者名稱和口令,你可以採用前面的整合的windows驗證方式或者對web.config檔案中的連線字串加密的方式提高程式的安全性。
3、sql server 2005中的sql server身份驗證模式如下:
string constr = "data source=.;initial catalog=myschool;user id=sa;pwd=sa";
說明:程式**中data source 表示執行資料庫對應的計算機名,initial catalog表示所使用的資料庫名。uid為指定的資料庫使用者名稱,pwd為指定的使用者口令。
4、access資料庫的連線字串的形式如下:
string connectionstring =@"provider=microsoft.jet.oledb.4.0;data source=c:\datasource\myschool.mdb";
說明:程式**中,通過專門針對access資料庫的ole db提供程式,實現資料庫的連線。這使用的的ole db提供程式為microsoft.jet.oledb.4.0,並且資料庫存放在c:\datasource目錄下,其資料庫檔案為myschool.mdb。
[csharp]view plain
copy
print?
string constr = "server=.;database=myschool;integrated security=sspi";
//string constr = "server=.;database=myschool;uid=sa;pwd=sa";
//string constr = "data source=.;initial catalog=myschool;user id=sa;pwd=sa";
sqlconnection con = new sqlconnection(constr);
// con.connectionstring = constr;
string sql = "select count(*) from grade";
sqlcommand com = new sqlcommand(sql,con);
try,條記錄", x));
} catch (exception)
finally
string constr = "server=.;database=myschool;integrated security=sspi";
//string constr = "server=.;database=myschool;uid=sa;pwd=sa";
//string constr = "data source=.;initial catalog=myschool;user id=sa;pwd=sa";
sqlconnection con = new sqlconnection(constr);
// con.connectionstring = constr;
string sql = "select count(*) from grade";
sqlcommand com = new sqlcommand(sql,con);
try,條記錄", x));
}catch (exception)
finally
5、web.config 配置
在asp.net 2.0中,使用了一種在執行時解析為連線字串值的新的宣告性表示式語法,按名稱引用資料庫連線字串。連線字串本身儲存在 web.config 檔案中的 <connectionstrings>配置節下面,以便易於在單個位置為應用程式中的所有頁進行維護。
[csharp]view plain
copy
print?
<?xml version="1.0"?>
"myschool" connectionstring="server=localhost;integrated security=true;database=myschool;persist security info=true" providername="system.data.sqlclient" />
"default"/>
<?xml version="1.0"?>
我們也可以用下面的方式從配置檔案直接讀取資料庫連線字串。首先我們需要引用using system.web.configuration命名空間,該命名空間包含用於設定 asp.net 配置的類。string connectionstring =configurationmanager.connectionstrings["myschool"].connectionstring;
首先你應該區分windows驗證與sql自身的驗證的區別。
windows驗證就是sqlserver伺服器使用windows自帶的驗證系統,如果你指定sqlserver內windows的乙個組有訪問的許可權,那麼加入此組的windows使用者都有訪問資料庫的許可權。此驗證有個缺點,就是如果不是在域模式下,無法加入遠端計算機的使用者,所以如果使用c/s方式寫程式的話,使用windows驗證無法使本地計算機的windows帳戶訪問遠端資料庫伺服器。
sql驗證就簡單多了,就是使用sqlserver的企業管理器中自己定義由sql控制的使用者,指定使用者許可權等。這個帳戶資訊是由sqlserver自己維護的,所以sqlserver更換計算機後資訊不會丟失,不用重新設定。
所以如果你的專案使用在乙個比較大的網路中,而且對安全要求比較高,那麼應該建立域,使用windows驗證,而且要與系統管理員配合詳細設定可以訪問sqlserver的windows帳戶。如果使用乙個小網路,而且此網路僅用來使用專案,對安全沒有高要求,那麼使用sqlserver驗證,而且更新,公升級等都方便。
windows驗證與sqlserver驗證的資料庫聯接字串是不同的。
addkey="
hostname
"value
="mydb
"/>
addkey=
"cp1boxconnection
"value="
data source=;initial catalog=;user id=sa;password=sa
"/>
C SQL操作ACCESS資料庫
前幾天寫的 的資料有點不對,就在vc下寫了個程式來刷了一下資料.該程式為doc下的程式,沒有介面的,操作access資料庫,其中,用boost的lexical cast 對型別進行了轉換.期間用vector儲存了資料庫的資料,希望對有需要的人有幫助.第乙個程式用來生成單位編號的,程式如下 inclu...
C SQL資料庫操作類
using system using system.configuration using system.data using system.data.sqlclient using system.collections namespace mycorporation.department.data...
資料庫連線方式
1 內連線 inner join 從左表中取出每一條記錄,去右表中與所有的記錄進行匹配 匹配必須是某條件在左表中與右表中相同最終才會保留結果,否則不保留。2 外連線out join 以某張表為主,取出裡面的所有記錄,然後每條與另外一張表進行連線 不管能不能匹配上條件,最終都會保留 能匹配,正確保留 ...