简述C#对数据库的操作

 ************************************************

**由于本人能力有限,其中内容有误之处请大虾们指出*

**另请对C#编程有兴趣的朋友加入群:11531413       *

*************************************************

1、基本知识篇

       11  概述

       C#对数据库的操作主要基于ADO.NETADOActiveX Data Object)是一个COM组件库,包含许多类,无论是使用SQL Server类,还是使用OLE DB类,都可以使用它们。

1、1、1            命名空间

System.Data---所有一般的数据访问类

System.Data.Command---各个数据提供程序共享(或重写)的类

System.Data.Odbc----ODBC提供程序的类

System.Data.OleDB---OLE DB提供程序的类

System.Data.Oracle----Oracle提供程序的类

System.Data.SqlClient----Sql Sever提供程序的类

这些命名空间提供了在.NET数据访问中使用的类和接口。

2、基本操作篇

21  概述

ADO对数据库的操作都可以分为以下几步:

A、定义连接字符串

B、 定义SQLConnection对象

C、 将连接字符串与SQLConnection对象连接起来

D、打开数据库连接

E、 进行一定的操作

F、 关闭数据库连接

2、2          例子

A、定义连接字符串

串一:

string strconn=”Integrated log=Student;data source=(local);user id=sa;password=sa”

这是一个非常传统的连接字符串,数据库名为student,数据源是本地,帐号密码都为sa

串二:

string strconn=”server=(local);integrated security=SSPI;database=Student”

比较推荐用这个连接字符串,基中integrated security=SSPI参数使用Windows Authentication连接数据库服务器。最好在源代码中使用这个参数,而不是用户名和密码。它也实现了串一的功能。

B、 定义一个SQLConnection对象

SqlConnection conn=new SqlConnection();

C、 将连接字符串与Connection对象联系起来

Conn.ConnectionString=strconn

D、打开数据库连接

Conn.Open()

E、 对数据库进行操作

这一步又大致可以分成三步:

a、  定义一个操作命令字符串

string select=”Select ID,NAME from student”

b、  定义一个命令

SqlConnetion cmd=new SqlCommand(select,conn)

c、  用数据库操作命令执行

Itn rows=cmd.ExecuteNonQuery()

F、 关闭数据库连接

Conn.Close();

              其中第A-C可以合成一步,如上例可以合写成

SqlConnection conn=new SqlConnection(“server=(local);integrated security=SSPI;database=Student ”);

3、效率的问题

一般情况下,当在.NET中使用在资源时,例如数据库连接、文件流连接,最好确保每个资源在使用后就立即关闭。尽管.NET的设计人员实现了自动的垃圾收集,垃圾最终都会被回收,但仍需要尽可能早地释放资源,以避免出现资源缺乏的情况。

1、1           try…catch…finally语句块

代码:(使用上边已定义了的变量)

try

{

  conn.Open();

}

catch(Execption e)

{

       //如果在连接不成功进做的事

}

finally

{

conn.close();

}

1、2           使用using语句块

using(SqlConnection conn=new SqlConnection(source))

{

conn.Open();

}

在退出这个语句块时,连接自动被释放。

4、对事务的处理

       事务的概念我想大家都知道了,这里我们只看C#对事务的支持。C#对数据库事务的支持使用SqlTransaction,并用其中的Commit方法对事务进行提交,例:

       SqlTransation dc=conn.BegionTransaction()

       dc.Commit()

5、命令

       这里所说的命令就是一个要在数据库上执行的SQL文本字符串。命令也可以是一个存储过程,或者返回表中所有列和所有行的表名。执行命令有许多方式。

A、ExecuteNonQuery()----执行一个命令,但除了返回受影响的记录条数以外,不返回任何值

B、 ExecuteReader()---执行一个命令,返回一个类型化的IDataReader,这一个数据流,可用foreach读出来

C、 ExecuteScalar()---执行一个命令,返回一个值

D、ExecuteXmlReader()---执行一个命令,返回一个XmlReader对象,它可以用于传送从数据库中返回的XML代码段

由于本人能力有限,其中内容有误之处请大虾们指出

另请对C#编程有兴趣的朋友加入群:11531413

  • 0
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值