C#连接数据库特殊方法两则

开发 后端
用过VS2008的开发人员肯定知道,在安装IDE时会自动安装精简版SQL数据库服务SqlExpress,这个数据库系统少了最重要的企业管理器。如果碰到项目中要用到SQL数据库的时候也不能附加到数据库服务里面去,导致项目在连接数据库的时候会提示找不到数据库文件而读取失败。那么,这个精简版的SQL数据库服务是不是意味着一无是处呢?

用过VS2005和VS2008的开发人员肯定知道在安装这个IDE的时候会自动安装了一个精简版的SQL数据库服务SqlExpress,这个数据库系统少了最重要的企业管理器,也就是说不能用它来建数据表和一些可视化操作。如果碰到项目中要用到SQL数据库的时候也不能附加到数据库服务里面去,导致项目在连接数据库的时候会提示找不到数据库文件而读取失败。那么,这个精简版的SQL数据库服务是不是意味着一无是处呢?

其实未必,只要我们在连接数据库的时候利用好它就可以了~~

在这里我介绍两种C#中连接数据库的方法。一种需要附加数据库,一种则不要,只需要安装这个精简版的SQL就可以了…

方法一:

连接代码:

string strconn;
strconn = "Data Source=(local);";
strconn += "Initial Catalog=student;";
strconn += "User ID=sa;";
strconn += "Password=;"; 
SqlConnection con = new SqlConnection(strconn);
//通过用户名和密码连接数据库
//SqlConnection con = new SqlConnection("Data Source=(local);
Initial Catalog=library;Integrated Security=True"); 
//通过系统用户验证连接数据库
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");
…… //接下去就是对数据的操作了

这种方法必须要附加数据库文件才可以访问…

优点是可以通过企业管理器直接对数据库进行可视化操作,比如对记录进行全权修改…万一碰到数据有错误,在系统里面不好修改的时候可以进行强制维护。同时,如果后期更新系统,增加新的数据库需求,比如增加字段就可以在里面操作。

当然这也算是缺点,乱改数据可能导致破坏数据库的一些规则和数据一致性,严重的话会导致灾难性的数据崩溃。

方法二:

连接代码:

SqlConnectionStringBuilder connectstringbuilder = 
new SqlConnectionStringBuilder();
connectstringbuilder.DataSource = @"(local)\sqlexpress";
//指定数据库服务
connectstringbuilder.AttachDBFilename=@"|DataDirectory|\data\library.mdf";
//数据库文件,采用相对地址的方式来指定。注意格式
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");
……//接下去就是对数据的操作了

这个方法最大的有点就是允许我们不用安装600M(MSSQL2000)或者1G(MSSQL2005)的数据库系统,只需要安装SQL精简版的数据库服务(22M左右)就可以了。而且不用去附加数据库…

但是这种优点也带来致命的缺点,就是第一次连接数据库的时候会有点慢,这不要紧,但它会重新格式数据库文件的一些结构,导致一些数据格式发生变化,因此连接之后这样的数据库文件是不能再次被附加到数据库系统中的(会报错)。也就是说后期如果要修改数据库,比如增加字段和表等是不太可能实现的。

不过这也在一定的程度上带来了安全性。

以上这两种数据库连接方式各有千秋,是否要使用就看你的系统实际应用需求了…

(注:这两种方法在VS2005+MSSQL调试通过…)

【编辑推荐】

  1. 浅谈C#中的接口问题
  2. 浅谈C# 4.0中的动态类型和动态编程
  3. 深入理解C# 3.0的五项主要改进
责任编辑:田超 来源: CNBlog
相关推荐

2009-08-25 11:35:27

C#连接数据库

2009-08-18 11:23:11

2009-08-25 14:05:06

C#连接数据库代码

2009-09-04 17:49:34

C#连接数据库

2009-03-19 10:08:09

C#数据库查询

2009-12-07 16:49:03

RHEL用户技巧

2009-10-22 11:31:22

Oracle用户解锁命

2010-03-05 16:03:30

Python连接数据库

2009-08-12 14:23:01

C#连接MySql数据

2009-08-25 14:59:36

ASP.NET和C#连

2009-10-28 13:50:16

Oracle密码丢失

2010-07-21 13:03:46

2010-08-04 10:32:56

Flex连接数据库

2009-08-25 14:18:13

C#如何连接数据库

2011-10-08 17:29:17

扫描仪故障解决

2009-08-25 16:01:32

C#.NET连接数据库

2012-12-14 08:35:07

项目经理IT顾问

2012-12-19 09:39:18

程序员

2010-10-26 15:21:11

连接Oracle数据库

2009-09-04 17:23:21

C#数据库连接对象
点赞
收藏

51CTO技术栈公众号