C#.NET連接數(shù)據(jù)庫(kù)的不同處理方法
C#是一個(gè)語(yǔ)言,ASP.NET是一個(gè)平臺(tái),上面支持用C#或者VB.NET寫(xiě)代碼。連接Access,SQL Server,Oracle,還有Excel數(shù)據(jù)庫(kù),是大家在日常開(kāi)發(fā)中經(jīng)常會(huì)碰到的情況。
和連接數(shù)據(jù)庫(kù)的字符串不同,首先說(shuō)下命名空間的導(dǎo)入,大部分?jǐn)?shù)據(jù)庫(kù)在導(dǎo)入了下面的命名空間后就可以了(包括下面提到的SQL Server數(shù)據(jù)庫(kù))
using System.Data.OleDb;
要是使用SQL Server的數(shù)據(jù)庫(kù),C#.NET提供了單獨(dú)的連接方法使其能夠更加快的與數(shù)據(jù)庫(kù)進(jìn)行連接,
導(dǎo)入方法如下:
using System.Data.SqlClient;(SQL Server)
再就是連接數(shù)據(jù)庫(kù)所需要的連接字符串(就是變量strConnection),它指定了要使用的數(shù)據(jù)提供者和要使用的數(shù)據(jù)源.
C#連接連接Access
- string strConnection="Provider=Microsoft.Jet.OleDb.4.0;";
- strConnection+=@"Data Source=C:\Northwind.mdb";
- OleDbConnection objConnection=new OleDbConnection(strConnection);
- ...
- objConnection.Open();
- ..
- objConnection.Close();
" Provider=Microsoft.Jet.OleDb.4.0;"是指數(shù)據(jù)提供者,這里使用的是Microsoft Jet引擎,也就是Access中的數(shù)據(jù)引擎,asp.net就是靠這個(gè)和Access的數(shù)據(jù)庫(kù)連接的.
"Data Source=C: \Northwind.mdb"是指明數(shù)據(jù)源的位置,他的標(biāo)準(zhǔn)形式是"Data Source=MyDrive:MyPath\MyFile.MDB".
" OleDbConnection objConnection=new OleDbConnection(strConnection);"這一句是利用定義好的連接字符串來(lái)建立了一個(gè)鏈接對(duì)象,以后對(duì)數(shù)據(jù)庫(kù)的操作我們都要和這個(gè)對(duì)象打交道.
"objConnection.Open();"這用來(lái)打開(kāi)連接.至此,與Access數(shù)據(jù)庫(kù)的連接完成.
" objConnection.Close();"得到數(shù)據(jù)或是修改數(shù)據(jù)后,一定要關(guān)閉數(shù)據(jù)庫(kù)連接
C#.NET連接數(shù)據(jù)庫(kù)附錄:
1.要注意連接字符串中的參數(shù)之間要用分號(hào)來(lái)分隔.
2.如果要連接的數(shù)據(jù)庫(kù)文件和當(dāng)前文件在同一個(gè)目錄下,還可以使用如下的方法連接:
strConnection+="Data Source=";
strConnection+=MapPath("Northwind.mdb");
3. "+="后面的"@"符號(hào)是防止將后面字符串中的"\"解析為轉(zhuǎn)義字符.
C#連接SQL Server
- string strConnection="uid=sa; password=; ";
- strConnection+="initial catalog=Northwind;Server=YourSQLServer;";
- strConnection+="Connect Timeout=30";
- SqlConnection objConnection=new SqlConnection(strConnection);
- objConnection.Open();
- objConnection.Close();
"uid=sa":連接數(shù)據(jù)庫(kù)的用戶名為sa.
"password=":連接數(shù)據(jù)庫(kù)的驗(yàn)證密碼為空.他的別名為"pwd",所以我們可以寫(xiě)為"pwd=".
"initial catalog=Northwind":使用的數(shù)據(jù)源為"Northwind"這個(gè)數(shù)據(jù)庫(kù).他的別名為"Database",本句可以寫(xiě)成"Database=Northwind".
"Server=YourSQLServer":使用名為"YourSQLServer"的服務(wù)器.他的別名為"Data Source","Address","Addr".
" Connect Timeout=30":連接超時(shí)時(shí)間為30秒.(根據(jù)情況添加)
C#.NET連接數(shù)據(jù)庫(kù)附錄:
1.你的SQL Server必須已經(jīng)設(shè)置了需要用戶名和密碼來(lái)登錄,否則不能用這樣的方式來(lái)登錄.如果你的SQL Server設(shè)置為Windows登錄,那么在這里就不需要使用"uid"和"password"這樣的方式來(lái)登錄,而需要使用"Trusted_Connection=SSPI"來(lái)進(jìn)行登錄.
2. 如果使用的是本地?cái)?shù)據(jù)庫(kù)且定義了實(shí)例名,則可以寫(xiě)為"Server=(local)\實(shí)例名";如果是遠(yuǎn)程服務(wù)器,則將"(local)"替換為遠(yuǎn)程服務(wù)器的名稱或IP地址.
C#連接連接Excel
- string path = "c:\book1.xls";
- string strConnection = "provider=microsoft.jet.oledb.4.0;data source=" + path + ";extended properties=excel 8.0;";
- string sql = "select * from [sheet1$]";
- OleDbConnection objConnection = new OleDbConnection(strConnection);
"c:\book1.xls "文件的路徑
"provider=microsoft.jet.oledb.4.0"是指數(shù)據(jù)提供者,這里使用的是Microsoft Jet引擎,也就是excel中的數(shù)據(jù)引擎,asp.net就是靠這個(gè)和excel的數(shù)據(jù)庫(kù)連接的.
"data source"是指明數(shù)據(jù)源的位置
"[sheet1$]" sheet1為excel里標(biāo)的名稱,用法:[name$]
本文來(lái)自白岳的博客園文章《C#.NET 怎樣連接數(shù)據(jù)庫(kù)》
【編輯推薦】