我在第一页有两个注册页面,我插入必填字段,之后我使用userid更新其他一些细节... userid是DB中的标识列,所以我的更新存储过程
ALTER procedure [dbo].[sp_update]
(@id int,@FormFiledBy varchar (50),@MaritalStatus varchar (50),@Height varchar (50),
@Religion varchar (50),@Caste varchar (100),
@MotherTongue varchar(50),@Education varchar (100),@Occupation varchar(50),
@CountryofResidence varchar (50),@EducationDetails varchar (100),@AnnualIncome varchar(50),
@CountryOfBirth varchar(50),@BirthPlace varchar(50),@TimeOfBirth nchar(10),@StarSign varchar (100),
@Gothram varchar (50),@Rassi varchar(50),@HavinChildren varchar(10),@PhysicalStatus varchar (100))
as
begin
update Profile_Master
set FormFiledBy=@FormFiledBy,MaritalStatus=@MaritalStatus,Height=@Height,
Religion=@Religion,Caste=@Caste,MotherTongue=@MotherTongue,
Education=@Education,Occupation=@Occupation,CountryofResidence=@CountryofResidence,EducationDetails=@EducationDetails,
AnnualIncome=@AnnualIncome,CountryOfBirth=@CountryOfBirth,BirthPlace=@BirthPlace,TimeOfBirth=@TimeOfBirth,
StarSign=@StarSign,Gothram=@Gothram,Rassi=@Rassi,HavinChildren=@HavinChildren,PhysicalStatus=@PhysicalStatus
where UserId=@id
return
end
在我的DAL中
public static int update(ProfileMasterBLL profileMasterBLL)
{
string userid = ProfileMasterDAL.GetUserIdByEmailID(profileMasterBLL.EmailID);
SqlConnection conn = Generic.DBConnection.OpenConnection();
try
{
SqlCommand cmdd = new SqlCommand("sp_update", conn);
cmdd.CommandType = CommandType.StoredProcedure;
cmdd.Parameters.AddWithValue("@FormFiledBy", profileMasterBLL.FormFiledBy);
cmdd.Parameters.AddWithValue("@MaritalStatus", profileMasterBLL.MaritalStatus);
cmdd.Parameters.AddWithValue("@Height", profileMasterBLL.Height);
cmdd.Parameters.AddWithValue("@Religion", profileMasterBLL.Religion);
cmdd.Parameters.AddWithValue("@Caste", profileMasterBLL.Caste);
cmdd.Parameters.AddWithValue("@Education", profileMasterBLL.Education);
cmdd.Parameters.AddWithValue("@Occupation", profileMasterBLL.Occupation);
cmdd.Parameters.AddWithValue("@CountryofResidence", profileMasterBLL.CountryofResidence);
cmdd.Parameters.AddWithValue("@EducationDetails", profileMasterBLL.EducationDetails);
cmdd.Parameters.AddWithValue("@CountryOfBirth", profileMasterBLL.CountryOfBirth);
cmdd.Parameters.AddWithValue("@BirthPlace", profileMasterBLL.BirthPlace);
在我的用户界面
protected void Button1_Click(object sender, EventArgs e)
{
// Get User ID from DAL
int chk = 0;
if (Session["EmailID"] != null)
{
emailID = Session["EmailID"].ToString();
}
ProfileMasterBLL prfbll = new ProfileMasterBLL();
string userid = ProfileMasterDAL.GetUserIdByEmailID(emailID);
我可以在此处获取用户ID,但在此之后
chk = ProfileMasterDAL.update(prfbll);
在这里断点跳转到更新方法,我得到的emailid为null,所以我在忘记用户ID也对此有任何帮助吗?
在我的BAL中
public class ProfileMasterBLL
{
public int UserId { get; set; }
public string FormFiledBy { get; set; }
public string FirstName { get; set; }
public string LastName { get; set; }
public string Gender { get; set; }
public string MaritalStatus { get; set; }
public string HavinChildren { get; set; }
public string EmailID { get; set; }
}
在我的第一页中,我正在捕捉会话值
Session["EmailID"] = TextBox8.Text;
答案 0 :(得分:0)
尝试检查空字符串。 某些点的UserId也是一个字符串,而不是int,您在哪里转换和处理转换错误。在进行数据库调用之前尝试使用int.TryParse()。
答案 1 :(得分:0)
尝试声明字符串emailID
,使其在(Session["EmailID"] != null)
大括号后仍然在范围内:
protected void Button1_Click(object sender, EventArgs e)
{
// Get User ID from DAL
int chk = 0;
string emailID = "";
if (Session["EmailID"] != null)
{
emailID = Session["EmailID"].ToString();
}
ProfileMasterBLL prfbll = new ProfileMasterBLL();
string userid = ProfileMasterDAL.GetUserIdByEmailID(emailID);