【发布时间】:2021-09-07 04:20:53
【问题描述】:
我正在尝试将多个对象添加到列表中 (tmpUsers),但是当我尝试添加第二个对象时,我进入了 catch 块?有人可以看看我的做法是否正确并帮助我了解我哪里出错了吗?
public List<User> GetFilteredUsers(long CompanyKey, int sitekey, int filtertype=4, string filtervalue="", UserRequestContext requestContext = null)
{
List<User> tmpUsers = new List<User>();
Database db = null;
IDataReader dr = null;
DbCommand dbCommand = null;
try
{
db = DatabaseFactory.CreateDatabase("vaultDataConfiguration");
dbCommand = db.GetStoredProcCommand("GetFilteredUsers");
db.AddInParameter(dbCommand, "@CompanyKey", DbType.Int32, CompanyKey);
db.AddInParameter(dbCommand, "@Sitekey", DbType.Int32, sitekey);
db.AddInParameter(dbCommand, "@FilterType", DbType.Int32, filtertype);
db.AddInParameter(dbCommand, "@FiterValue", DbType.String, filtervalue);
dr = db.ExecuteReader(dbCommand);
User tmpUser = new User();
while (dr.Read())
{
tmpUser.GroupName = dr["groupName"] != DBNull.Value ? dr["groupName"].ToString() : "";
tmpUsers.Add(tmpUser);
}
tmpUser = new User();
tmpUser.CompanyUdidDescription = dr["companyUDIDDescription"] != DBNull.Value ? dr["companyUDIDDescription"].ToString() : "";
tmpUsers.Add(tmpUser);
return tmpUsers;
}
catch (Exception ex)
{
LogWriter.WriteAuditLog(ex.Message, LogLevel.ERROR, exception: ex, _event: "UserDAO->GetFilteredUserDetails", requestContext: requestContext);
throw;
}
finally
{
if (dr != null)
{
dr.Close();
dr.Dispose();
}
}
}
【问题讨论】:
-
有什么异常?
-
添加用户发生在 While 循环之外。不确定如何/何时添加第二个用户
-
您大概想为数据库中的每条记录创建一个新的
User对象,从数据库中设置其GroupName和CompanyUdidDescription属性,并将User对象添加到列表中, 正确的?您确实应该将行User tmpUser = new User();;移动到while循环内,以及while循环之后、return之前的代码。
标签: c# .net asp.net-core asp.net-core-mvc