SqlConnection 连接方式的储存过程为: public static DataSet RunProcedure(string storedProcName, IDataParameter[] parameters, string tableName)
        {
            using (SqlConnection connection = new SqlConnection(connectionString))
            {
                DataSet dataSet = new DataSet();
                connection.Open();
                SqlDataAdapter sqlDA = new SqlDataAdapter();
                sqlDA.SelectCommand = BuildQueryCommand(connection, storedProcName, parameters);
                sqlDA.Fill(dataSet, tableName);
                connection.Close();
                return dataSet;
            }
        }
由于项目需要,需要更改连接方式为OleDbConnection连接,参数不变/// <summary>
        /// 执行存储过程
        /// </summary>
        /// <param name="storedProcName">存储过程名</param>
        /// <param name="parameters">存储过程参数</param>
        /// <param name="tableName">DataSet结果中的表名</param>
        /// <returns>DataSet</returns>
        public static DataSet RunProcedure(string storedProcName, IDataParameter[] parameters, string tableName)
        {
            using (OleDbConnection connection = new OleDbConnection(connectionString))
            {
                DataSet dataSet = new DataSet();
                connection.Open();
                OleDbDataAdapter sqlDA = new OleDbDataAdapter();
                sqlDA.SelectCommand = BuildQueryCommand(connection, storedProcName, parameters);
                sqlDA.Fill(dataSet, tableName);
                connection.Close();
                return dataSet;
            }
        }
错误:BuildQueryCommand这个不存在,我知道它不属于 SqlClient,但是要怎么修改?要具体代码。

解决方案 »

  1.   

     MySqlConnection connection = null;
                MySqlCommand command = null;
                MySqlDataReader reader = null;                connection = new MySqlConnection(this._dbConnectionString);
                    command = new MySqlCommand(spName, connection);
                    command.CommandType = CommandType.StoredProcedure;
      

  2.   

    BuildQueryCommand这个是自定义的方法啊,不知道你有源文件吗,有的话,直接修改就行了,没有的话,就自己构造了,或者不用这种方式也可以,
    OleDbDataAdapter sqlDA = new OleDbDataAdapter();
                    sqlDA.SelectCommand = BuildQueryCommand(connection, storedProcName, parameters);
    改为
    OleDbDataAdapter sqlDA = new OleDbDataAdapter(storedProcName,connection);
    sqlDA.SelectCommand.CommandType=CommandType.StoredProcedure;
    sqlDA.SelectCommand.Parameters.Add(parameters);
    //sqlDA.SelectCommand = BuildQueryCommand(connection, storedProcName, parameters);
      

  3.   

    有啊 多的是 我dbhelper 类 目前支持mysql . sqlserver .oracle. access 数据库
    基本方法实现用反射技术。。
      

  4.   


    //添加这个方法 private IDbCommand BuildQueryCommand(connection, storedProcName, parameters)
    {
        IDbCommand cmd = connection.CreateCommand();
        foreach(IDataParameter para in parameters){
            cmd.Parameters.Add(para);
        }
        cmd.CommandText =storedProcName;
        return cmd;    
    }