| 网站首页 | 业界新闻 | 小组 | 威客 | 人才 | 下载频道 | 博客 | 代码贴 | 在线编程 | 编程论坛
欢迎加入我们,一同切磋技术
用户名:   
 
密 码:  
共有 391 人关注过本帖
标题:指点我一下,关于C#数据访问层
只看楼主 加入收藏
灵虚
Rank: 1
等 级:新手上路
帖 子:5
专家分:0
注 册:2010-9-14
结帖率:100%
收藏
已结贴  问题点数:20 回复次数:1 
指点我一下,关于C#数据访问层
C#编程,三层架构的模型
1.我把数据库的表做了个实体类
namespace Entity
{
   public class 学生
    {
        public Guid  学生ID { get;set;}
        public String  名称 { get;set;}
        public Int32  学号 { get;set;}   
    }  
}
2.做了个接口类
namespace IDAL
{
    //定义学生接口,要求实现增删改功能
    //以实体作为参数
    public interface 学生   
    {
        int Insert(Entity.学生 xs);
        int Update(Entity.学生 xs);
        int Delete(Entity.学生 xs);            
    }
}
3.抽象一个方法类
namespace DALFactory
{
 //这里定义一个抽象类“工厂”。通过接口(IDAL)把 学生,课程……等抽象定义一个方法的
  public abstract class DALFactory
    {        public abstract IDAL.学生 学生Provider
             { get; }
             public abstract IDAL.课程 课程Provider
             { get; }
    }
}
4.业务
namespace BLL
{
    //实例化抽象方法(工厂类)
   DALFactory datafactory=new DALFactory();
   public class  学生    {   
       #region 增
       public int 添加(Entity.学生 xs)
       {
           return datafactory.学生Provider.Insert(xs);
        }
        public int 添加(Guid 学生ID1,String 名称1,Int32 学号1)
        {
            return  this.添加(new Entity.学生()
            {
                学生ID=学生ID1,名称=名称1,排序=排序1
            }
            );
        }
        #endregion
}
下面是大问题
数据访问层不知怎么写,只写个SQL的就好
namespace SQLProvider
{
    //学生操作数据库(SQL Server)的实现,继承接口IDAL定义的共性   
   public class 学生sqlprovider:IDAL .学生
    {
        //由于接口具有强制性,继承了必须实现功能
        public int Insert(Entity.学生 xs)
            {
                求大虾教教我,完善一下这个增加的就行了。本人新手,分数不多,能给的都给,万分感谢
            }
          public int Update(Entity.学生 xs)
            {
            }
}


[ 本帖最后由 灵虚 于 2011-6-10 01:26 编辑 ]
搜索更多相关主题的帖子: 数据库 
2011-06-09 18:44
dwwwing
Rank: 8Rank: 8
等 级:蝙蝠侠
威 望:1
帖 子:284
专家分:986
注 册:2008-10-11
收藏
得分:20 
写了个简单的你看看吧,也许能帮上你,仅给个思路。
    public static class SqlHelper
    {
        private static  string connectionString = ConfigurationManager.AppSettings["connectionString"];
        
      
        /// <summary>
        /// Execute the store procedure with paramaters.
        /// </summary>
        /// <param name="sProcName">The name of the procedure.</param>
        /// <param name="parms">The paramaters of the procedure.</param>
        /// <returns><c>SqlDataReader</c></returns>
         public static SqlDataReader Exec(string sProcName, SqlParameter[] parms)
         {
             SqlConnection connection = new SqlConnection();
             connection.ConnectionString = connectionString;
             connection.Open();
 
            SqlCommand cmd = connection.CreateCommand();
             = CommandType.StoredProcedure;
             = sProcName;
 
            if (parms != null)
             {
                 cmd.Parameters.AddRange(parms);
             }

             return cmd.ExecuteReader(CommandBehavior.CloseConnection);
         }
    }

    public class Student
    {
        public string Name
        {
            get;
            set;
        }
    }

    public class 学生sqlprovider : IDAL.学生
    {
        public IList<Student> GetStudentById(int id)
        {
            IList<Student> students = new List<Student>();
            string procName = "proGetStudentById";
            SqlParameter[] parameter = new SqlParameter[] { new SqlParameter("@ID", SqlDbType.Int) };
            SqlDataReader reader = SqlHelper.Exec(procName, parameter);
            if (reader != null)
            {
                while (reader.Read())
                {
                    Student student = ConvertToStudent(reader);
                    students.Add(student);
                }
            }

            return students;
        }

        private Student ConvertToStudent(SqlDataReader reader)
        {
            Student student = new Student();
            student.Name = reader["Name"].ToString();
            return student;
        }
    }
2011-06-10 11:06
快速回复:指点我一下,关于C#数据访问层
数据加载中...
 
   



关于我们 | 广告合作 | 编程中国 | 清除Cookies | TOP | 手机版

编程中国 版权所有,并保留所有权利。
Powered by Discuz, Processed in 0.023245 second(s), 7 queries.
Copyright©2004-2024, BCCN.NET, All Rights Reserved