How could I instantiate a Profiled DataAdapter to use with MVC MINI PROFILER?

前端 未结 1 428
粉色の甜心
粉色の甜心 2021-01-22 08:31

None of the Command objects have Fill methods, but in the former way I was doing I could instantiate a new OracleDataAdapter. How could I instantiate a Profiled DataAdapter to p

相关标签:
1条回答
  • 2021-01-22 09:06

    According to Rory

    "There's a class ProfiledDbDataAdapter provided for this that you can use wrapped around your existing SqlDataAdapter."

    By this hint, you can write some code like this

    public DbConnection _dbConnection;
    private DbCommand _dbCommand;
    private DbDataAdapter _dbDataAdapter;
    
    public DataSet GetResultByProcWithSingleParam(string procName, SqlParameter sqlParams)
            {
                try
                {
                    _dbCommand = _dbConnection.CreateCommand();
                    _dbCommand.CommandType = CommandType.StoredProcedure;
                    _dbCommand.Parameters.Add(sqlParams);
                    _dbCommand.CommandText = procName;
                    _dbConnection.Open();
                    _dbCommand.ExecuteNonQuery();
                    _dbDataAdapter = DbProviderFactories.GetFactory("System.Data.SqlClient").CreateDataAdapter();
                    _dbDataAdapter = new ProfiledDbDataAdapter(_dbDataAdapter);
                    _dbDataAdapter.SelectCommand = _dbCommand;
                    _ds = new DataSet();
                    _dbDataAdapter.Fill(_ds);
                    _dbConnection.Close();
                    return _ds;
                }
                catch (Exception ex)
                {
    
                    throw;
                }
    
            } 
    

    And namespaces for this code are:

    using System.Data;
    using System.Data.Common;
    using System.Data.SqlClient;
    using StackExchange.Profiling;
    using StackExchange.Profiling.Data;
    

    I hope it will work. In my case, it is working successfully.

    0 讨论(0)
提交回复
热议问题