如何实例化Profiled DataAdapter以与MVC MINI PROFILER一起使用?

时间:2011-08-03 10:52:32

标签: .net oracle datatable fill mvc-mini-profiler

没有任何Command对象具有Fill方法,但是在我以前的方式中,我可以实例化一个新的OracleDataAdapter。如何实例化Profiled DataAdapter以使用MVC MINI PROFILER配置我的数据库活动?

我需要的是使用Fill命令和MVC mini Profiler的配置文件连接。

[更新

我认为许多人之前必须这样做,除非他们使用的是实体框架,它工作得很好而且容易。在我的情况下,查询被动态加载到Datatable中,并且实体无法映射,因为应用程序不知道它。

配置文件连接创建命令后的最大问题是将其设置为无法实例化的DataAdapter。

[更新] 进一步参考:

1 个答案:

答案 0 :(得分:1)

根据Rory

“为此提供了一个ProfiledDbDataAdapter类,您可以使用现有的SqlDataAdapter包装。”

通过这个提示,你可以写一些像这样的代码

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;
            }

        } 

此代码的命名空间为:

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

我希望它能奏效。就我而言,它正在成功运作。