C Sharp to Web

I Love This Code
  博客园  :: 首页  :: 新随笔  :: 联系 :: 订阅 订阅  :: 管理

通过实例了解抽象工厂(二)数据层

Posted on 2007-05-08 21:14  落花游鸿  阅读(3071)  评论(8)    收藏  举报
数据层SQLServerDAL相对简单,只需要继承Factory并实现里面的抽象方法就ok了
添加数据层类库SQLServerDAL,添加类SQLServerDAL



还是以上一章节为例,源代码

using System;
using System.Collections.Generic;
using System.Data;
using System.Data.SqlClient;
using System.Configuration;
using Components;

namespace SQLServerDAL
{
    
public class SQLServerDAL:Factory //继承数据抽象工厂类
    {
        
private string connectionString = "";
        
public string ConnectionString
        {
            
get { return connectionString; }
            
set { connectionString = value; }
        }
    
//返回Connection实例
        public SqlConnection GetSqlConnection()
        {
            
try
            {
                
return new SqlConnection(ConnectionString);
            }
            
catch
            {
                
throw new Exception("数据库连接字符串无效");
            }
        }

        
public SQLServerDAL()
        {  
        
//获取Web.Config里设置的连接字符串
            this.ConnectionString = ConfigurationManager.ConnectionStrings["ConStr"].ConnectionString;
        }

    
//实现工厂方法中的抽象方法,返回范型新闻实体对象即新闻列表。
        public override List<News> GetNews()
        {
            
using (SqlConnection Con = GetSqlConnection())
            {
                SqlCommand Com 
= new SqlCommand("GetNews",Con);
                Com.CommandType 
= CommandType.StoredProcedure;

                Con.Open();
                SqlDataReader dr 
= Com.ExecuteReader(CommandBehavior.CloseConnection);
                List
<News> news = new List<News>();
                
while (dr.Read())
                    news.Add(NewsIDataReader(dr));
//Factory工厂方法中数据抽取器的调用
                Con.Close();
                
return news;
            }
        }
    }
}


数据层出来我想Factory类也不再神秘了。我们下面该做用户界面了 (显示层)

添加Web项目,添加Default.ASPx



在Default.ASPx中添加GridView---添加ObjectDataSource---将ObjectDataSource对象数据源绑定到GridView控件




配置ObjectDataSource对象数据源,选择业务逻辑对象Components.NewsS



点击下一步在Select选项卡中选择方法GetNews()



完成,启动调试




下载源代码