0

我在这里遇到一个问题,我无法在 DNN 中调用存储过程。我正在使用 DNN 7 [lastest]。我尝试使用 NamePrefix +“reg_user”,但它似乎没有调用我想要的过程。下面是我尝试过的但来了到同样的结果。

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[用户界面]

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”不存在。

任何帮助都非常受欢迎!

4

2 回答 2

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。我是作为优秀社区成员的一员这样做的。所以我倾向于不让我的问题得不到回答。

研究生,

于 2013-04-03T04:02:33.230 回答
0

我认为您必须查看一下您的 SqlDataProvider。

私有常量字符串 providerType = "数据";

private const string moduleQualifier = "Objectqualifier_";

这是添加了您的 SP 名称(如 Objectqualifier_SPname)的对象限定符字符串。并且您必须以相同的方式创建 SP。意味着您必须只在 GetFullyQualifiedName("SPname") 中写入 sp 名称的最后一部分。使用调试器检查 SP 的全名。然后检查您在 SQL Server 中的原始 SP 名称。

请您提供您在 SQL Server 中的 sp 名称和您的 *private const string moduleQualifier

于 2013-04-22T06:53:31.303 回答