2013-03-29 2 views
0

DNN에서 저장 프로 시저를 호출 할 수없는 곳에서 문제가 발생했습니다. DNN 7 [lastest]을 사용하고 있습니다. NamePrefix + "reg_user"를 사용했지만이 프로 시저를 호출하지 않은 것처럼 보입니다. 아래는 제가 시도한 것이지만 같은 결과를 가져옵니다.DotNetNuke에서 SQL 저장 프로 시저 호출

SqlDataProvider.cs [DAL]

public override void AddUser(int ModuleId,string User_name,string User_password,string User_email { 
    SqlHelper.ExecuteNonQuery(ConnectionString,GetFullyQualifiedName("reg_user"),ModuleId,User_name,User_password,User_email); 
} 

FeatureController.cs [BL]

Public void AddUser(Register_user reg){ 
    if(reg._User_name.Trim() != "") 
    { 
     DataProvider.Instance().AddUser(reg.ModuleId,reg._User_name,reg.User_password,_User_email);  
    } 
} 

Register_user.cs [법인]

public class Register_user 
{ 
    public int _ModuleId{ get; set; } 
    public string _User_name{ get; set; } 
    public string _User_password{ get; set; } 
    public string _User_email{ get; set; } 
} 

view.ascx.cs [UI]

protected void btnregister_Click(object sender, EventArgs e) 
{ 

    try 
    { 
     FeatureController cntrl = new FeatureController(); 
     Register_user reg = new Register_user() 
     { 
      _ModuleId=ModuleId, 
      _User_name = txtusername.Text, 
      _User_email = txtemail.Text, 
      _User_password = txtpassword.Text 
     }; 
     cntrl.AddUser(reg); 
     } 
     catch (Exception ee) 
     { 
      lblresult.Text = ee.Message.ToString(); 
     } 
} 

오류 : 저장 프로 시저 'dbo.DNNModule2_reg_user'는 존재하지 않는다.

도움이 많이 필요합니다.

답변

0

며칠 전 제가 물었던이 질문에 대한 해결책 업데이트가 있습니다. 이것에 대한 해결책은 오히려 간단합니다. 여기는 내가 필요로하는 것입니다. 그리고 아무 문제없이 SQL 데이터베이스를 호출합니다.

public override void AddUser(int ModuleId,string User_name,string User_password,string User_email { 
    SqlHelper.ExecuteNonQuery(ConnectionString,DatabaseOwner + ObjectQualifier + reg_user",ModuleId,User_name,User_password,User_email); 
} 

그냥 GetFullyQualifiedName에서 DatabaseOwner + ObjectQualifier로 변경합니다. 좋은 지역 사회 구성원의 일원으로이 일을하고 있습니다. 그래서 나는 내 질문에 대답하지 않는 경향이 있습니다.

Regrads,

0

나는 당신이 당신의 SqlDataProvider에 한 번 볼 필요가 생각합니다.

private const string providerType = "data";

private const string moduleQualifier = "Objectqualifier_";

이것은 Objectqualifier_SPname과 같은 SP 이름으로 추가 된 개체 한정자 문자열입니다. 그리고 같은 방법으로 SP를 만들어야합니다. GetFullyQualifiedName ("SPname")에 sp 이름의 마지막 부분 만 써야합니다. 디버거를 사용하여 SP의 전체 이름을 확인하십시오. 그리고 SQL Server에있는 원래 SP 이름을 확인하십시오.

귀하의 SQL 서버와 귀하의 * private const string moduleQualifier

과 같이 귀하의 sp 이름을 알려주십시오.