none
大家好,我不知道接下来要怎么提高编程效率,因此想请教各位老师。 RRS feed

  • 问题

  • 大家早上好,我从一些教程上获取源代码,开发自己想实现的三层架构,现在我遇到了一个问题,我觉得这个三层架构开发效率太低,比如UserDAL涉及到一些SQL脚本,经常出错,UserBLL的业务逻辑太简单,现在我不知道如何提高开发效率,因此来请教各位老师,有什么好的建议和意见吗?

    User相关代码:UserDAL,UserBLL,UserModel

    public class UserDAL
        {
            SQLHelper db = new SQLHelper();
            
            /// <summary>
            /// 查询所有用户实体
            /// </summary>
            /// <returns></returns>
            public DataTable SelectAllUser()
            {
                string sql = @"SELECT [UserID],[Password],[Name],[Sex],[Phone]," +
                    "[Tutor],[DptName],[College],[University]," +
                    "[Major],[EnrollYear],[Cntnt] " +
                    "FROM [TrainingExam].[dbo].[ExprmntUser]"; //2015-3-16,增加Password字段
                return db.GetDataTable(sql);
            }
            /// <summary>
            /// 添加用户实体到数据库
            /// </summary>
            /// <param name="user"></param>
            /// <returns></returns>
            public int InsertUser(UserModel user)
            {
                string sql = @"INSERT INTO [TrainingExam].[dbo].[ExprmntUser] VALUES(" +
                    "@UserID, @Pass, @Name, @Sex, @Phone, @Tutor, @DptName, @College, @University, @Major, @EnrollYear, @Content)";
                SqlParameter[] parameters = 
                {
                    new SqlParameter("@UserID", user.UserID),
                    new SqlParameter("@Pass", user.Pass),
                    new SqlParameter("@Name", user.Name),
                    new SqlParameter("@Sex", user.Sex),
                    new SqlParameter("@Phone", user.Phone),
                    new SqlParameter("@Tutor", user.Tutor),
                    new SqlParameter("@DptName", user.DptName),
                    new SqlParameter("@College", user.College),
                    new SqlParameter("@University", user.University),
                    new SqlParameter("@Major", user.Major),
                    new SqlParameter("@EnrollYear", user.EnrollYear),
                    new SqlParameter("@Content", user.Content)
                };
                return db.ExecuteNonQuery(sql, parameters);
            }
            /// <summary>
            /// 删除用户实体
            /// </summary>
            /// <param name="user"></param>
            /// <returns></returns>
            public int DeleteUser(UserModel user)
            {
                string sql = @"DELETE FROM [TrainingExam].[dbo].[ExprmntUser] WHERE UserID=@UserID";
                SqlParameter parameter = new SqlParameter("@UserID", user.UserID);
                return db.ExecuteNonQuery(sql, parameter);
            }
            /// <summary>
            /// 修改用户实体
            /// </summary>
            /// <param name="user"></param>
            /// <returns></returns>
            public int UpdateUser(UserModel user)
            {
                string sql = @"UPDATE [TrainingExam].[dbo].[ExprmntUser] SET UserID=@UserID, Name=@Name, Sex=@Sex, Phone=@Phone, EnrollYear=@EnrollYear, " +
                    "Tutor=@Tutor, Major=@Major, DptName=@DptName, College=@College, University=@University, Content=@Content " +
                    "WHERE UserID=@UserID";
                SqlParameter[] parameters = 
                {
                    new SqlParameter("@UserID", user.UserID),
                    new SqlParameter("@Name", user.Name),
                    new SqlParameter("@Sex", user.Sex),
                    new SqlParameter("@Phone", user.Phone),
                    new SqlParameter("@EnrollYear", user.EnrollYear),
    
                    new SqlParameter("@Tutor", user.Tutor),
                    new SqlParameter("@Major", user.Major),
                    new SqlParameter("@DptName", user.DptName),
                    new SqlParameter("@College", user.College),
                    new SqlParameter("@University", user.University),
                    new SqlParameter("@Content", user.Content),
                    new SqlParameter("@UserID", user.UserID)
                };
                return db.ExecuteNonQuery(sql, parameters);
            }
        }
    public class UserBLL
        {
            private UserDAL userdal = new UserDAL();
    
            /// <summary>
            /// 获取所有用户信息
            /// </summary>
            /// <returns></returns>
            public DataTable GetAllUser()
            {
                return userdal.SelectAllUser();
            }
            /// <summary>
            /// 添加用户信息
            /// </summary>
            /// <param name="user"></param>
            /// <returns></returns>
            public bool AddUser(UserModel user)
            {
                if (userdal.InsertUser(user) > 0)
                    return true;
                else
                    return false;
            }
            /// <summary>
            /// 删除用户信息
            /// </summary>
            /// <param name="user"></param>
            /// <returns></returns>
            public bool DeleteUser(UserModel user)
            {
                if (userdal.DeleteUser(user) > 0)
                    return true;
                else
                    return false;
            }
            /// <summary>
            /// 修改用户信息
            /// </summary>
            /// <param name="user"></param>
            /// <returns></returns>
            public bool UpdateUser(UserModel user)
            {
                if (userdal.UpdateUser(user) > 0)
                    return true;
                else
                    return false;
            }
        }

    public class UserModel
        {
            public string UserID
            {
                get;
                set;
            }
    
            public string Name
            {
                get;
                set;
            }
    
            public string Sex
            {
                get;
                set;
            }
    
            public string DptName
            {
                get;
                set;
            }
    
            public string Phone
            {
                get;
                set;
            }
    
            public string Major
            {
                get;
                set;
            }
    
            public string University
            {
                get;
                set;
            }
    
            public string Tutor
            {
                get;
                set;
            }
    
            public string EnrollYear
            {
                get;
                set;
            }
    
            public string College
            {
                get;
                set;
            }
    
            public string Content
            {
                get;
                set;
            }
    
            public string Pass
            {
                get;
                set;
            }
        }

    以下是项目的代码组织结构:


    2015年3月27日 1:03

答案

  • 那就抛去sql,直接用ef,用linq。这样只关心业务逻辑就好了。 
    2015年3月28日 9:31
  • 。net开发,其实很快的。

    1、选择一个框架(linq,ormlite等等都可以)

    2、用codesmith直接生成所有三层代码就可以了。

    3、需要额外的业务逻辑,继承下来加一下非常快。

    2015年4月4日 17:04

全部回复