您的位置:首页 > 运维架构 > 网站架构

为网站添加业务层

2008-06-15 18:51 190 查看
业务层也叫中间层,是网站的精髓,掌控应用程序的业务逻辑。
(文中例子只为说明问题,可以有错误地方,不可照抄)

1.连接数据库

1)打开sql 连接

2)执行数据库操作,返回数据 (黄金法制:尽可能晚打开数据库,尽快关闭)

3)关闭数据库连接

建立连接的类是:SqlConnection,指定三个重要的参量:sql实例名、访问数据库授权信息、数据库名

例子:
  SqlConnection connection =new sqlconnection

connection.connectionstring="Sever=;user id=psd=database=;"

connection.Open();


2.提交命令于执行存储过程

1)创建SqlCommand对象:

主要作用是:可以讲于数据库交互的信息保存起来,他存放的是要执行的sql语句和存储过程的名字;当然也包括存储过程的参数。
SqlCommand command = new SqlCommand();

comand.Connection = connection;

command.CommandText = "Gegdd";

command.CommandType = CommandType.StoreProcedure;


2)执行命令和关闭连接

这是值得自豪的时候,在创建完连接和sqlcommand对象后,就可以准备执行命令了。执行完应该马上关闭数据库连接。

这里将要介绍多种执行方法(Exccute):ExcuteNonQuery、ExcuteScalar和ExcuteReader

ExcuteNonQuery用于执行不返回任何记录的sql语句和存储过程,如更新、插入、删除操作时,常用此法。他可以返回一个整数值,用来说明影响的行数。
connectionOpen();

command.ExcuteNonQuety();

command.Close();


ExcuteScalar也是返回一个单值,但是他不是返回一个影响的行数,而是从数据库里面读取的数据,如果用select查询得到多行数据,那么返回第一行第一列的数据

ExecuteReader返回多条记录。他返回一个SqlDataReader对象,一个SqlDataReader对象是以顺序向前且只读的形式逐个 读取并返回结果的。他的优点它是取数最快的对象,不利的一面是需要打开连接,在连接关闭前无法使用同一个连接执行其他任何数据库操作。在我们的解决方案 种,通过SqldataReader取回所有记录,存入DataTable中(他可以存储数据而不打开连接),这样可以马上关闭数据库。

-----------------------------------------------

DataTable的分类是DataSet,他是个非常强大的对象,像一个内存中的数据库,他能存储数据表、他们的数据类型、表间关系等。正是因为他的负责行,dataset会消耗很多内存,所有避免使用他。

------------------------------------------------

经典代码:

conn.open();

sqldataReader reader=comm.ExecuteReader();     // 和上文所说的,ExcuteReader返回一个SqlDataReader

DataTable table=new Datatable();

table.Load(reader);

reader.Close();

conn.Closer();
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: