0

ストアド プロシージャの実行に役立つ Web サービスを作成しようとしています。そして、ストアド プロシージャを実行するためにコードで呼び出しているその Web メソッド。これは私のWebメソッドです-

[WebMethod(Description = des_ExecuteParamerizedSelectCommand)]
public DataTable ExecuteParamerizedSelectCommand(string CommandName, CommandType cmdType, SqlParameter[] param)
{
    DataTable table = new DataTable();

    using (SqlConnection con = new SqlConnection(ConnectionString()))
    {
        using (SqlCommand cmd = con.CreateCommand())
        {
            cmd.CommandType = cmdType;
            cmd.CommandText = CommandName;
            cmd.Parameters.AddRange(param);

            try
            {
                 if (con.State != ConnectionState.Open)
                 {
                     con.Open();
                 }

                 using (SqlDataAdapter da = new SqlDataAdapter(cmd))
                 {
                     da.Fill(table);
                 }
            }
            catch
            {
                 throw;
            }
        }
    }

    return table;
}

これがデータ アクセス レイヤーのコードです。この Web メソッドを呼び出そうとすると、コンパイル時にエラーが発生します。

Error   2   Argument 2: cannot convert from 'System.Data.CommandType' to 'DAL.sqlDBHelper.CommandType' 

Error   3   Argument 3: cannot convert from 'System.Data.SqlClient.SqlParameter[]' to 'DAL.sqlDBHelper.SqlParameter[]'

webmethod を呼び出す私のコード -

sqlDBHelper.ODCdbHelper mysqlDBHelper = new sqlDBHelper.ODCdbHelper();

public Login GetUserRoles(string _Idsid)
{
    Login login = null;

    SqlParameter[] parameters = new SqlParameter[]
    {
        new SqlParameter("@UserName", _Idsid)
    };
    //Lets get the list of all employees in a datataable

    using (DataTable table = mysqlDBHelper.ExecuteParamerizedSelectCommand("GetUserRole", CommandType.StoredProcedure, parameters))

どこが間違っているのか、誰か教えてもらえますか??

前もって感謝します

4

2 に答える 2

1

このようにしてみてください

 DAL.sqlDBHelper.SqlParameter[] parameters = new DAL.sqlDBHelper.SqlParameter[]//Change Here        {
            SqlParameter("@UserName", _Idsid)
        };
        //Lets get the list of all employees in a datataable

        using (DataTable table = mysqlDBHelper.ExecuteParamerizedSelectCommand("GetUserRole", DAL.sqlDBHelper.CommandType.StoredProcedure, parameters))
于 2013-05-03T04:43:04.543 に答える
0

DAL.sqlDBHelper.CommandTypeデータアクセス層の列挙子になると思います。そして、期待されるパラメータはDAL.sqlDBHelper.SqlParameter[]代わりにSystem.Data.SqlClient.SqlParameter[]

したがって、select関数を次のように呼び出すことができます

DAL.sqlDBHelper.SqlParameter[] parameters = new DAL.sqlDBHelper.SqlParameter[]
{
    new SqlParameter("@UserName", _Idsid)
};

using (DataTable table = mysqlDBHelper.ExecuteParamerizedSelectCommand("GetUserRole", DAL.sqlDBHelper.CommandType.StoredProcedure, parameters)) 

DAL でストアド プロシージャに対して定義されているコマンド タイプを確認してください。

于 2013-05-03T04:39:38.280 に答える