自拍偷在线精品自拍偷,亚洲欧美中文日韩v在线观看不卡

C#連接數(shù)據(jù)庫(kù)特殊方法兩則

開(kāi)發(fā) 后端
用過(guò)VS2008的開(kāi)發(fā)人員肯定知道,在安裝IDE時(shí)會(huì)自動(dòng)安裝精簡(jiǎn)版SQL數(shù)據(jù)庫(kù)服務(wù)SqlExpress,這個(gè)數(shù)據(jù)庫(kù)系統(tǒng)少了最重要的企業(yè)管理器。如果碰到項(xiàng)目中要用到SQL數(shù)據(jù)庫(kù)的時(shí)候也不能附加到數(shù)據(jù)庫(kù)服務(wù)里面去,導(dǎo)致項(xiàng)目在連接數(shù)據(jù)庫(kù)的時(shí)候會(huì)提示找不到數(shù)據(jù)庫(kù)文件而讀取失敗。那么,這個(gè)精簡(jiǎn)版的SQL數(shù)據(jù)庫(kù)服務(wù)是不是意味著一無(wú)是處呢?

用過(guò)VS2005和VS2008的開(kāi)發(fā)人員肯定知道在安裝這個(gè)IDE的時(shí)候會(huì)自動(dòng)安裝了一個(gè)精簡(jiǎn)版的SQL數(shù)據(jù)庫(kù)服務(wù)SqlExpress,這個(gè)數(shù)據(jù)庫(kù)系統(tǒng)少了最重要的企業(yè)管理器,也就是說(shuō)不能用它來(lái)建數(shù)據(jù)表和一些可視化操作。如果碰到項(xiàng)目中要用到SQL數(shù)據(jù)庫(kù)的時(shí)候也不能附加到數(shù)據(jù)庫(kù)服務(wù)里面去,導(dǎo)致項(xiàng)目在連接數(shù)據(jù)庫(kù)的時(shí)候會(huì)提示找不到數(shù)據(jù)庫(kù)文件而讀取失敗。那么,這個(gè)精簡(jiǎn)版的SQL數(shù)據(jù)庫(kù)服務(wù)是不是意味著一無(wú)是處呢?

其實(shí)未必,只要我們?cè)谶B接數(shù)據(jù)庫(kù)的時(shí)候利用好它就可以了~~

在這里我介紹兩種C#中連接數(shù)據(jù)庫(kù)的方法。一種需要附加數(shù)據(jù)庫(kù),一種則不要,只需要安裝這個(gè)精簡(jiǎn)版的SQL就可以了…

方法一:

連接代碼:

string strconn;
strconn = "Data Source=(local);";
strconn += "Initial Catalog=student;";
strconn += "User ID=sa;";
strconn += "Password=;"; 
SqlConnection con = new SqlConnection(strconn);
//通過(guò)用戶名和密碼連接數(shù)據(jù)庫(kù)
//SqlConnection con = new SqlConnection("Data Source=(local);
Initial Catalog=library;Integrated Security=True"); 
//通過(guò)系統(tǒng)用戶驗(yàn)證連接數(shù)據(jù)庫(kù)
con.Open();
SqlDataAdapter thisadapter = new SqlDataAdapter
("select * from reader where 條形碼='" + txm + "'", con);
SqlCommandBuilder thisbuilder = new SqlCommandBuilder(thisadapter);
DataSet thisdataset = new DataSet();
thisadapter.Fill(thisdataset, "reader");
…… //接下去就是對(duì)數(shù)據(jù)的操作了

這種方法必須要附加數(shù)據(jù)庫(kù)文件才可以訪問(wèn)…

優(yōu)點(diǎn)是可以通過(guò)企業(yè)管理器直接對(duì)數(shù)據(jù)庫(kù)進(jìn)行可視化操作,比如對(duì)記錄進(jìn)行全權(quán)修改…萬(wàn)一碰到數(shù)據(jù)有錯(cuò)誤,在系統(tǒng)里面不好修改的時(shí)候可以進(jìn)行強(qiáng)制維護(hù)。同時(shí),如果后期更新系統(tǒng),增加新的數(shù)據(jù)庫(kù)需求,比如增加字段就可以在里面操作。

當(dāng)然這也算是缺點(diǎn),亂改數(shù)據(jù)可能導(dǎo)致破壞數(shù)據(jù)庫(kù)的一些規(guī)則和數(shù)據(jù)一致性,嚴(yán)重的話會(huì)導(dǎo)致災(zāi)難性的數(shù)據(jù)崩潰。

方法二:

連接代碼:

SqlConnectionStringBuilder connectstringbuilder = 
new SqlConnectionStringBuilder();
connectstringbuilder.DataSource = @"(local)\sqlexpress";
//指定數(shù)據(jù)庫(kù)服務(wù)
connectstringbuilder.AttachDBFilename=@"|DataDirectory|\data\library.mdf";
//數(shù)據(jù)庫(kù)文件,采用相對(duì)地址的方式來(lái)指定。注意格式
connectstringbuilder.IntegratedSecurity = true;   
connectstringbuilder.UserInstance = true;
SqlConnection thisconnection =
new SqlConnection(connectstringbuilder.ConnectionString);
SqlDataAdapter thisadapter =
new SqlDataAdapter
("select * from reader where 條形碼='" +txm + "'", thisconnection);
DataSet dt = new DataSet();
thisadapter.Fill(dt, "info");
……//接下去就是對(duì)數(shù)據(jù)的操作了

這個(gè)方法最大的有點(diǎn)就是允許我們不用安裝600M(MSSQL2000)或者1G(MSSQL2005)的數(shù)據(jù)庫(kù)系統(tǒng),只需要安裝SQL精簡(jiǎn)版的數(shù)據(jù)庫(kù)服務(wù)(22M左右)就可以了。而且不用去附加數(shù)據(jù)庫(kù)…

但是這種優(yōu)點(diǎn)也帶來(lái)致命的缺點(diǎn),就是第一次連接數(shù)據(jù)庫(kù)的時(shí)候會(huì)有點(diǎn)慢,這不要緊,但它會(huì)重新格式數(shù)據(jù)庫(kù)文件的一些結(jié)構(gòu),導(dǎo)致一些數(shù)據(jù)格式發(fā)生變化,因此連接之后這樣的數(shù)據(jù)庫(kù)文件是不能再次被附加到數(shù)據(jù)庫(kù)系統(tǒng)中的(會(huì)報(bào)錯(cuò))。也就是說(shuō)后期如果要修改數(shù)據(jù)庫(kù),比如增加字段和表等是不太可能實(shí)現(xiàn)的。

不過(guò)這也在一定的程度上帶來(lái)了安全性。

以上這兩種數(shù)據(jù)庫(kù)連接方式各有千秋,是否要使用就看你的系統(tǒng)實(shí)際應(yīng)用需求了…

(注:這兩種方法在VS2005+MSSQL調(diào)試通過(guò)…)

【編輯推薦】

  1. 淺談C#中的接口問(wèn)題
  2. 淺談C# 4.0中的動(dòng)態(tài)類型和動(dòng)態(tài)編程
  3. 深入理解C# 3.0的五項(xiàng)主要改進(jìn)
責(zé)任編輯:田超 來(lái)源: CNBlog
相關(guān)推薦

2009-08-25 11:35:27

C#連接數(shù)據(jù)庫(kù)

2009-08-18 11:23:11

2009-08-25 14:05:06

C#連接數(shù)據(jù)庫(kù)代碼

2009-09-04 17:49:34

C#連接數(shù)據(jù)庫(kù)

2009-03-19 10:08:09

C#數(shù)據(jù)庫(kù)查詢

2009-12-07 16:49:03

RHEL用戶技巧

2009-10-22 11:31:22

Oracle用戶解鎖命

2009-08-12 14:23:01

C#連接MySql數(shù)據(jù)

2009-08-25 14:59:36

ASP.NET和C#連

2011-10-08 17:29:17

掃描儀故障解決

2010-07-21 13:03:46

2009-08-25 14:18:13

C#如何連接數(shù)據(jù)庫(kù)

2010-03-05 16:03:30

Python連接數(shù)據(jù)庫(kù)

2009-10-28 13:50:16

Oracle密碼丟失

2010-08-04 10:32:56

Flex連接數(shù)據(jù)庫(kù)

2009-08-25 16:01:32

C#.NET連接數(shù)據(jù)庫(kù)

2012-12-14 08:35:07

項(xiàng)目經(jīng)理IT顧問(wèn)

2012-12-19 09:39:18

程序員

2010-10-26 15:21:11

連接Oracle數(shù)據(jù)庫(kù)

2009-09-04 17:23:21

C#數(shù)據(jù)庫(kù)連接對(duì)象
點(diǎn)贊
收藏

51CTO技術(shù)棧公眾號(hào)