【发布时间】:2011-04-21 22:44:44
【问题描述】:
我还有一个问题。我的方法:
public StudentProfile GetFullStudentProfile(int userID)
{
SqlConnection conn = new SqlConnection(Config.DbConnectionString);
SqlCommand cmd = new SqlCommand("GetFullUserProfile", conn);
cmd.CommandType = CommandType.StoredProcedure;
cmd.Parameters.Add(new SqlParameter("@UserID", SqlDbType.Int));
cmd.Parameters["@UserID"].Value = userID;
StudentProfile sp = null;
try
{
conn.Open();
SqlDataReader reader = cmd.ExecuteReader(CommandBehavior.SingleRow);
if (reader.Read())
{
sp = new StudentProfile((int)reader["UserID"], (string)reader["UserName"], (string)reader["UserFamilyName"], (DateTime)reader["UserBirthDay"], (string)reader["UserTelephone"], (string)reader["UserEmail"], (DateTime)reader["UserRegDate"], (string)reader["UserComment"], (bool)reader["UserActive"]);
}
reader.Close();
}
catch (Exception ex)
{
//lbl.Text = ex.Message;
}
finally
{
conn.Close();
}
return sp;
}
WebUserControl 中的代码:
protected void ddlStudents_SelectedIndexChanged(object sender, EventArgs e)
{
CatalogAccess ca=new CatalogAccess();
lblEmail.Visible = true;
lblName.Visible = true;
lblTelephone.Visible = true;
HiddenID.Value = ddlStudents.SelectedValue;
lblName.Text = HiddenID.Value;
lblEmail.Text = ca.GetFullStudentProfile(ddlStudents.SelectedIndex).UserEmail;
lblFamilyName.Visible = true;
lblBirth.Visible = true;
ddlStudents.Items.Clear();
PopulateStudentsDDL();
}
当我运行代码时出现异常
我是否正确理解问题出在方法 GetFullStudentProfile() 中?如果是这样,如何解决?
我认为问题是:
StudentProfile sp = null;
所以它说变量 sp 没有用 try 块中的数据填充。是吗?
现在添加 StudentProfile.cs 类列表:
public class StudentProfile
{ public StudentProfile(int userID, string userName, string userFamilyName, DateTime userBirthDay, string userTelephone, string userEmail,DateTime userRegDate, string userComment, bool userActive) { 用户 ID = 用户 ID; 用户名 = 用户名; 用户家庭名称 = 用户家庭名称; 用户生日 = 用户生日; 用户电话 = 用户电话; 用户邮箱 = 用户邮箱; 用户注册日期 = 用户注册日期; 用户评论 = 用户评论; 用户活动 = 用户活动; }
public int UserID
{
get;
set;
}
public string UserName
{
get;
set;
}
public string UserFamilyName
{
get;
set;
}
public DateTime UserBirthDay
{
get;
set;
}
public string UserTelephone
{
get;
set;
}
public string UserEmail
{
get;
set;
}
public DateTime UserRegdate
{
get;
set;
}
public string UserComment
{
get;
set;
}
public bool UserActive
{
get;
set;
}
}
【问题讨论】:
-
在该行设置断点并进入 getfullstudentprofile 方法。这会让你更好地了解失败的地方
-
我做到了。如何逐步获取完整的学生档案?
-
我截取了 IDE 的屏幕截图,但忘记了不能将屏幕截图放在 cmets 中。如果您没有修改您的快捷方式,它将是 F11。如果有,请单击 Debug -> Step Into