2012-08-13 76 views
0

我在第一页两个注册页面我插入必填字段之后,我更新使用userid其他一些细节......用户ID是在DB一个标识列,所以我的更新存储过程无法更新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 [email protected],[email protected],[email protected], 
[email protected],[email protected],[email protected], 
[email protected],[email protected],[email protected],[email protected], 
[email protected],[email protected],[email protected],[email protected], 
[email protected],[email protected],[email protected],[email protected],[email protected] 

where [email protected] 
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); 

在我的UI

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为空,所以我amgetting用户ID也为null对此有何帮助?

在我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

那是哪里设置会话变量的代码?这听起来像问题可能在那里。 – FJT 2012-08-13 17:25:24

+0

emailid来自第一页... – 2012-08-13 17:29:16

+0

如果您的Session [“EmailID”]为空,会发生什么情况? 您的代码使用空字符串或空字符串调用更新。 – Steve 2012-08-13 17:42:15

回答

0

尝试检查以及为空字符串。 另外你的UserId在somepoints是一个字符串,而不是一个int,你在哪里转换和处理转换错误。在进入数据库调用之前尝试int.TryParse()。

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);