首页 > 代码库 > C#数据库编程

C#数据库编程

数据库的使用是非常重要的技术,它几乎跟所有的编程语言都有关联。C#提供的ADO.NET数据库访问方式有SQL Server与 OLE DB两种。两者相比较,前者是针对于SQL Server数据库的连接,所以访问SQL Server数据库效率会非常之高,后者可以针对广泛的数据操作,相对来说,效率比较低。如果不涉及到数据库的特例,他们的大致方法是一样的。

  首先,欲连接数据库,必须有个连接对象Connection,可以有SqlConnection与OleDbConnection,具体使用哪一个连接对象,取决于你需连接的数据库类型。下面给出两种连接方式的代码。

SQL Server数据访问

string strConn ="Integrated Security=SSPI;Initial Catalog=MyDatabase;Data Source=MyDataSource ";

Integrated Security 可以设置为: True, false, yes, no ,这四个的意思很明白了,还可以设置为:sspi ,相当于 True,建议用这个代替 True。Integrated Security=SSPI 这个表示以当前WINDOWS系统用户身去登录SQL SERVER服务器,如果SQL SERVER服务器不支持这种方式登录时,就会出错。Initial Catalog后面接的是数据库 Data Source后面接的是资源数据。

SqlConnection conn = new SqlConnection(strConn);//创建连接对象

conn.Open();//打开连接,在实战项目中,会将其封装起来,再加上 conn.State == ConnectionState.Close的判断

Ole Db数据访问

string strConn ="Provider=SQLOLEDB;Data Source=localhost;Initial  Catalog=MyDatabase;Integrated Security=SSPI";

OleDbConnection conn=new OleDbConnection (strConn);

conn.Open();

上面的代码如果没有异常抛出,那就说明已经顺利的连接上了数据库。接下来就是创建DataAdapter来完成访问数据库的工作。DataAdapter的工作是DataSet的基础,其内容就是建立一个DataSet与数据库的中间层来协调访问。同样的根据数据库的类型不同可以分为SqlDataAdapter与OleDbDataAdapter两种适配器。

SqlDataAdapter adapter = new SqlDataAdapter();

string strSql = "select * from TableName";

adapter.SelectCommand = new SqlCommand(strSql,conn);

//SqlCommandBuilder myCB = new SqlCommandBuilder (adapter);

DataSet myDataSet = new DataSet ();

adapter.Fill(myDataSet,"表名");

这段代码用到了SqlDataAdapter、DataSet、SqlCommand、SqlCommandBuilder四个对象。SqlDataAdapter的作用就是负责与数据库的通讯访问,同时与DataSet相连,它的内部有四个很重要的Command对象(同样分为SqlCommand和OleDbCommand),都是访问数据库必用的,分别为SelectCommand、InsertCommand、UpdateCommand、DeleteCommand对象。这些Command对象便是专门用来完成对数据库的查询、插入、更新、删除操作,它们就像四个大臣,在DataAdapter的控制下分别主管各自的事情。其中SelectCommand是它们四个中的老大,由它可以自动的构造生成另外的三个。构造生成的过程就是应用CommandBuilder。在这之前,我们只需要指定DataAdapter中的SelectCommand对象,就可以了。

 

C#数据库编程