读书人

哪位高手能用公司C#编程规范修改下此文

发布时间: 2012-04-03 12:38:19 作者: rapoo

谁能用公司C#编程规范修改下此文档,并且注释下!
老说说我们写的代码不规范,到外面根本不行,要重写!请大家帮帮忙!给我修改下!

C# code
using System;using System.Collections.Generic;using System.Text;using System.Data;using System.Data.SqlClient;using QHF.ESF.Model;namespace QHF.ESF.DAL{    public class UserDal    {        public static List<UserInfo> GetUsers(int iPageIndex, int iPageSize)        {            List<UserInfo> users = new List<UserInfo>();            StringBuilder sqlString = new StringBuilder();            sqlString.Append("select top ");            sqlString.Append(iPageSize.ToString());            sqlString.Append(" * from es_user ");            if (iPageIndex > 1)            {                sqlString.Append(" where userid not in( select top ");                sqlString .Append(Utils.IntToStr((iPageIndex-1)*iPageSize));                sqlString.Append(" userid from es_user)");             }            SqlDataReader dr = SQLHelper.ExecuteReader(SQLHelper.connectionString, CommandType.Text, sqlString.ToString(), null);            while (dr.Read())            {                UserInfo ui = new UserInfo();                ui.id = (int)dr["uid"];                ui.sex = (((bool)dr["usex"]) == true ? "男" : "女");                 ui.userid = (int)dr["userid"];                ui.name = dr["uname"].ToString();                ui.mobile = dr["umobile"].ToString();                ui.phone = dr["uphone"].ToString();                ui.email = dr["uemail"].ToString();                users.Add(ui);            }            dr.Close();            return users;        }        public static UserInfo GetUser(string userid)        {            UserInfo ui;            StringBuilder sqlString = new StringBuilder();            sqlString.Append("select  * from es_user ");            sqlString.Append(" where userid = @userid");            SqlParameter[] parms = new SqlParameter[]{                new SqlParameter("@userid", SqlDbType.Int)};            parms[0].Value = Utils.StrToInt(userid, 0);            SqlDataReader dr = SQLHelper.ExecuteReader(SQLHelper.connectionString, CommandType.Text, sqlString.ToString(), parms);            if (dr.Read())            {                ui =  new UserInfo();                ui.id = (int)dr["uid"];                ui.sex = (((bool)dr["usex"]) == true ? "男" : "女");                ui.userid = (int)dr["userid"];                ui.name = dr["uname"].ToString();                ui.mobile = dr["umobile"].ToString();                ui.phone = dr["uphone"].ToString();                ui.email = dr["uemail"].ToString();                dr.Close();            }            else            {                dr.Close();                StringBuilder sqlIns = new StringBuilder();                sqlIns.Append("insert into es_user(userid) values(");                sqlIns.Append("@userid)");                SqlParameter[] parms1 = new SqlParameter[] { new SqlParameter("@userid",SqlDbType.Int)  };                parms1[0].Value = Utils.StrToInt(userid, 0);                int iReturn = SQLHelper.ExecuteNonQuery(SQLHelper.connectionString, CommandType.Text, sqlIns.ToString(), parms1);                if (iReturn == 1)                {                    SqlDataReader dr2 = SQLHelper.ExecuteReader(SQLHelper.connectionString, CommandType.Text, sqlString.ToString(), parms);                    if (dr2.Read())                    {                        ui = new UserInfo();                        ui.id = (int)dr2["uid"];                        ui.sex = (((bool)dr2["usex"]) == true ? "男" : "女");                        ui.userid = (int)dr2["userid"];                        ui.name = dr2["uname"].ToString();                        ui.mobile = dr2["umobile"].ToString();                        ui.phone = dr2["uphone"].ToString();                        ui.email = dr2["uemail"].ToString();                        dr2.Close();                    }                    else                    {                        ui = null;                    }                }                else                {                    ui = null;                }            }                        return ui;        }        public static UserInfo GetUserByHid(int hid)        {            UserInfo ui = new UserInfo();            StringBuilder sqlString = new StringBuilder();            sqlString.Append("select  es_user.uid,es_user.usex,es_user.userid,es_user.uname,es_user.umobile,es_user.uphone,es_user.uemail from es_user ");            sqlString.Append(" inner join es_house on es_house.userid = es_user.userid ");            sqlString.Append(" where es_house.hid = @hid");            SqlParameter[] parms = new SqlParameter[]{                new SqlParameter("@hid", SqlDbType.Int)};            parms[0].Value = hid;            SqlDataReader dr = SQLHelper.ExecuteReader(SQLHelper.connectionString, CommandType.Text, sqlString.ToString(), parms);            if (dr.Read())            {                ui.id = (int)dr["uid"];                ui.sex = (((bool)dr["usex"]) == true ? "男" : "女");                ui.userid = (int)dr["userid"];                ui.name = dr["uname"].ToString();                ui.mobile = dr["umobile"].ToString();                ui.phone = dr["uphone"].ToString();                ui.email = dr["uemail"].ToString();            }            dr.Close();            return ui;        }        public static void Update(UserInfo ui)        {            StringBuilder sqlString = new StringBuilder();            sqlString.Append("update es_user set uname = @uname,usex=@usex,uphone=@uphone,umobile=@umobile,");            sqlString.Append("uemail=@uemail where userid = @userid");            SqlParameter[] parms = new SqlParameter[] {                 new SqlParameter("@uname",SqlDbType.NVarChar,50),                new SqlParameter("@usex",SqlDbType.Bit),                new SqlParameter("@uphone",SqlDbType.VarChar,20),                new SqlParameter("@umobile",SqlDbType.VarChar,20),                new SqlParameter("@uemail",SqlDbType.NVarChar,50),                new SqlParameter("@userid",SqlDbType.Int)            };            parms[0].Value = ui.name;            parms[1].Value = ui.sex.Equals("男")?true:false;            parms[2].Value = ui.phone;            parms[3].Value = ui.mobile;            parms[4].Value = ui.email;            parms[5].Value = ui.userid;            int iReturn = SQLHelper.ExecuteNonQuery(SQLHelper.connectionString, CommandType.Text, sqlString.ToString(), parms);           }        public static void Insert(UserInfo ui)        {            StringBuilder sqlString = new StringBuilder();            sqlString.Append("insert into es_user(uname,usex,uphone,umobile,uemail,userid) values(");            sqlString.Append("@uname,@usex,@uphone,@umobile,");            sqlString.Append("@uemail,@userid)");            SqlParameter[] parms = new SqlParameter[] {                 new SqlParameter("@uname",SqlDbType.NVarChar,50),                new SqlParameter("@usex",SqlDbType.Bit),                new SqlParameter("@uphone",SqlDbType.VarChar,20),                new SqlParameter("@umobile",SqlDbType.VarChar,20),                new SqlParameter("@uemail",SqlDbType.NVarChar,50),                new SqlParameter("@userid",SqlDbType.Int)            };            parms[0].Value = ui.name;            parms[1].Value = ui.sex.Equals("男") ? true : false;            parms[2].Value = ui.phone;            parms[3].Value = ui.mobile;            parms[4].Value = ui.email;            parms[5].Value = ui.userid;            int iReturn = SQLHelper.ExecuteNonQuery(SQLHelper.connectionString, CommandType.Text, sqlString.ToString(), parms);         }    }} 



[解决办法]
C# code
string sqlString = @"insert into es_user(uname,usex,uphone,umobile,uemail,userid) values("@uname,@usex,@uphone,@umobile,@uemail,@userid)";
[解决办法]
整体来说挺好的呀
1,加函数功能注释,和一些代码注释
2,有些if else 可以省略,这样代码看起来不会那么冗长
3,UserInfo 里像SEX能用编码最好了~~
4,SQLHelper.ExecuteReader 这个里面没有返回datatable的方法?个人还是比较喜欢直接返回个数据集合,
这样像CLOSE的就可以不用再写了
[解决办法]
用StringBuilder 来拼接Sql语句是可以的,不过写法可以改直观点,StringBuilder.AppendFormat("Select {0} FROM {1} WHERE {2}",item0,item1,item2);
[解决办法]
探讨

引用:

整体来说挺好的呀
1,加函数功能注释,和一些代码注释
2,有些if else 可以省略,这样代码看起来不会那么冗长
3,UserInfo 里像SEX能用编码最好了~~
4,SQLHelper.ExecuteReader 这个里面没有返回datatable的方法?个人还是比较喜欢直接返回个数据集合,
这样像CLOSE的就可以不用再写了

……

[解决办法]
探讨
/// <summary>
/// 返回用户集合
/// </summary>
/// <param name="iPageIndex">传参含义</param>
/// <param name="iPageSize">传参含义</param>
/// <returns></returns>
public static List<UserInfo> GetUsers(int iPageIndex, int iPageSize)
{
//对一些关键变量或者判断做个说明,因为你这几个函数还是跟一些业务有关
// 在一些IF 判断时就是业务体现的地方,关键的地方就要说一下,为什么做这个判断
//不用过多,只要确保另外的人能看懂程序是想做什么就可,也是为自己做个备忘吧
...
...
}

[解决办法]
不要说规范..应该说不够灵活.可读性不强.

可读性不强
sql语句拼接可以用这位兄说的方法:
C# code
    erictang2003用户头像    erictang2003    等 级:    #9楼 得分:0回复于:2012-02-14 22:31:59用StringBuilder 来拼接Sql语句是可以的,不过写法可以改直观点,StringBuilder.AppendFormat("Select {0} FROM {1} WHERE {2}",item0,item1,item2);
[解决办法]
如果你觉得顶顶别人会帮你重写你就太天真了..
如果真有人帮你重写.那他太天真了.
[解决办法]
出错处理一定要有的,不然出了问题很难调试。拼接sql性能差,容易被注入。
[解决办法]
最烦别人写注释,类名、方法名、变量起的实际一点

架构清晰点

拼了命写注释,c#这种面向对象的程序做这种事情最无聊

浪费精力

最烦日本人那种VB注释,无聊到底
[解决办法]
有注释就可以了
[解决办法]
缺少注释,命名不规范,没有异常处理

读书人网 >C#

热点推荐