0

ここで、DNN でストアド プロシージャを呼び出せないという問題があります。DNN 7 [lastest] を使用しています。同じ結果に。

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' が存在しません。

どんな助けでも大歓迎です!

4

2 に答える 2

0

SqlDataProvider を一度確認する必要があると思います。

private const string providerType = "データ";

private const string moduleQualifier = "Objectqualifier_";

これは、Objectqualifier_SPname のような SP 名に追加されたオブジェクト修飾子文字列です。同じ方法でSPを作成する必要があります。GetFullyQualifiedName("SPname") で sp 名の最後の部分のみを記述する必要があることを意味します。デバッガーを使用して、SP の完全な名前を確認します。次に、SQL Server にある元の SP 名を確認します。

SQL Server と *private const string moduleQualifier のように sp 名を教えてください。

于 2013-04-22T06:53:31.303 に答える
0

数日前に尋ねたこの質問の解決策を更新して戻ってきました。これに対する解決策はかなり単純です.Hereは私が変更する必要があるものです.そして、それは問題なく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 に答える