谁能用公司C#编程规范修改下此文档,并且注释下!
老说说我们写的代码不规范,到外面根本不行,要重写!请大家帮帮忙!给我修改下!
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); } }}
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);
[解决办法]
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注释,无聊到底
[解决办法]
有注释就可以了
[解决办法]
缺少注释,命名不规范,没有异常处理