代码改变世界

我之前有过的ASP.NET数据层访问方法

2010-09-05 15:51  dreamhappy  阅读(687)  评论(7编辑  收藏  举报

今天在博客园开博,希望能够在这个开放的平台上学到更多,也希望自己能够经常抽出时间增加博客数量,在写博客的同时思考程序代码,思考编程思想,同时沉淀技术.

      把我之前做三层Web开发的数据层访问代码拿出来讨论:大家可以在阅读代码后留下自己的看法。

首先是获得数据库连接对象,我采用的是sqlServer2005 数据库

1 privatestatic SqlConnection connection;
2 publicstatic SqlConnection Connection
3 {
4 get
5 {
6 string connectionString = ConfigurationManager.AppSettings["ConnectionString"];
7 if (connection ==null)
8 {
9 connection =new SqlConnection(connectionString);
10 connection.Open();
11 }
12 elseif (connection.State == System.Data.ConnectionState.Closed)
13 {
14 connection.Open();
15 }
16 elseif (connection.State == System.Data.ConnectionState.Broken)
17 {
18 connection.Close();
19 connection.Open();
20 }
21 return connection;
22 }
23 }

执行返回int的存储过程,我主要用于查询

代码

执行有输出参数的sql语句或存储过程,如果使用存储过程,添加操作的存储过程中使用select @id=@@identity,程序接收这个输出值来判断添加是否成功。

删除和更新操作中通过 select @@rowcount 获得行数如果是一来确定操作成功。

 

代码

 执行sql语句或者存储过程获得dataReader

代码

执行有参存储过程,并返DataSet 

代码

主要用于查询的方法

代码
///<summary>
/// 执行有参SQL语句或者存储过程,并返回执行行数 存储过程中用select @@表示
/// 0为存储过程 1为sql语句
///</summary>
///<param name="sql"></param>
///<param name="nType"></param>
///<param name="values"></param>
///<returns></returns>
publicstaticint GetScalar(string sql,int nType, params SqlParameter[] values)
{
SqlCommand cmd
=new SqlCommand(sql, Connection);
if (nType ==0)
{
cmd.CommandType
= CommandType.StoredProcedure;
}
if (nType ==1)
{
cmd.CommandType
= CommandType.Text;

}
cmd.Parameters.AddRange(values);
int result = Convert.ToInt32(cmd.ExecuteScalar());
return result;
}