public DataTable GetDataByProcedure(SqlCommand oracleCommand)
        {
            DataTable dtData = new DataTable();

            try
            {
                DataAccessConfiguration config = new DataAccessConfiguration();
                string sCon = config.ConnectionString;
                _connection = new SqlConnection(sCon);
                _connection.Open();
                oracleCommand.Connection = (SqlConnection)_connection;
                SqlDataAdapter oda = new SqlDataAdapter();
                oda.SelectCommand = oracleCommand;
                oda.Fill(dtData);
            }
            catch (Exception ex)
            {
                throw ex;
            }
            finally
            {
                _connection.Close();
            }

            return(dtData);
        }
Пример #2
0
        /// <summary>
        /// 根据配置获取数据访问
        /// </summary>
        /// <param name="config"></param>
        /// <returns></returns>
        public static DataAccessBroker Instance(DataAccessConfiguration config)
        {
            DataAccessBroker _broker = new SQLiteDataAccessBroker();

            _broker.Configuration = new SQLiteConnectConfiguration(config);
            _broker.Create();//创建并打开数据库连接
            return(_broker);
        }
Пример #3
0
        /// <summary>
        /// 根据配置获取数据访问
        /// </summary>
        /// <param name="config"></param>
        /// <returns></returns>
        public static DataAccessBroker Instance(DataAccessConfiguration config)
        {
            DataAccessBroker _broker = null;

            if (string.Compare(config.DBType, "ORACLE", false) == 0)
            {
                _broker = new SQLDataAccessBroker();
                _broker.Configuration = config;
            }
            else if (string.Compare(config.DBType, "SQLServer", false) == 0)
            {
                _broker = new SQLServerDataAccessBroker();
                _broker.Configuration = config;
            }
            _broker.Create();//创建并打开数据库连接
            return(_broker);
        }
Пример #4
0
        /// <summary>
        /// 根据配置获取数据访问
        /// </summary>
        /// <param name="config"></param>
        /// <returns></returns>
        public static DataAccessBroker Instance(DataAccessConfiguration config)
        {
            DataAccessBroker _broker = null;

            if (string.Compare(config.DBType, DBTYPE_SQLSERVER, false) == 0)
            {
                _broker = new SQLDataAccessBroker();
                _broker.Configuration = config;
            }
            //else if (string.Compare(config.DBType, DBTYPE_ODBC, false) == 0)
            //{
            //    _broker = new ODBCDataAccessBroker();
            //    _broker.Configuration = config;
            //}
            else
            {
                _broker = new OracelDataAccessBroker();
                _broker.Configuration = config;
            }
            _broker.Create();//创建并打开数据库连接
            return(_broker);
        }
        /// <summary>
        /// 根据配置名获取配置信息
        /// </summary>
        /// <param name="configName"></param>
        /// <returns></returns>
        public static DataAccessConfiguration GetDataAccessConfiguration(string configName)
        {
            if (!_cachedConfig.ContainsKey(configName))
            {
                string      factConfigName = configName;
                XmlDocument doc            = new XmlDocument();
                doc.Load(ConfigFile);

                XmlNode objNode = doc.SelectSingleNode("configuration/instances");
                if (factConfigName.Length == 0)//如果传入参数为空则查找默认配置
                {
                    factConfigName = objNode.Attributes["defaultInstance"].Value.ToString();
                }

                XmlNodeList objNodeList = objNode.SelectNodes("instance");
                int         iCount      = objNodeList.Count;

                XmlNode objDefaultNode = null;
                for (int i = 0; i < iCount; i++)//根据配置名称遍历instance下所有节点
                {
                    if (String.Compare(objNodeList[i].Attributes["name"].Value.ToString(), factConfigName, false) == 0)
                    {
                        objDefaultNode = objNodeList[i];
                        break;
                    }
                }
                if (null == objDefaultNode)
                {
                    throw new Exception("Can't find the instance configure information.");
                }
                string strConnName = objDefaultNode.Attributes["connectionString"].Value.ToString();//获取连接名称


                XmlNode objConnNode = null;
                objNodeList = doc.SelectNodes("configuration/connectionStrings/connectionString");
                iCount      = objNodeList.Count;
                for (int i = 0; i < iCount; i++)//根据连接名称遍历connectionStrings下所有节点
                {
                    if (String.Compare(objNodeList[i].Attributes["name"].Value.ToString(), strConnName, false) == 0)
                    {
                        objConnNode = objNodeList[i];
                        break;
                    }
                }
                if (null == objConnNode)
                {
                    throw new Exception("Can't find the instance configure information.");
                }

                DataAccessConfiguration config = new DataAccessConfiguration();
                config.ConfigName = factConfigName;
                config.DBType     = objDefaultNode.Attributes["type"].Value.ToString();

                objNodeList = objConnNode.SelectNodes("parameters/parameter");
                iCount      = objNodeList.Count;
                for (int i = 0; i < iCount; i++)
                {
                    config.Parameters[objNodeList[i].Attributes["name"].Value.Trim()] = objNodeList[i].Attributes["value"].Value.Trim();
                }
                _cachedConfig[configName] = config;
            }
            return(_cachedConfig[configName]);
        }
 public SQLiteConnectConfiguration(DataAccessConfiguration config)
 {
     _config = config;
 }
Пример #7
0
        /// <summary>
        /// 根据名称获取数据访问
        /// </summary>
        /// <param name="instanceName"></param>
        /// <returns></returns>
        public static DataAccessBroker Instance(string instanceName)
        {
            DataAccessConfiguration config = DataAccessConfigurationMangement.GetDataAccessConfiguration(instanceName.Trim());

            return(Instance(config));
        }
Пример #8
0
        /// <summary>
        /// 获取数据通过Command
        /// </summary>
        /// <typeparam name="T"></typeparam>
        /// <param name="command">SQL</param>
        /// <returns></returns>
        public static EntityCollection <T> Select <T>(string queryString, DataAccessParameterCollection parameters, CommandType cmdType, DataAccessConfiguration config)
            where T : EntityBase, new()
        {
            EntityCollection <T> result = new EntityCollection <T>();

            using (DataAccessBroker broker = DataAccessFactory.Instance(config))
            {
                IDataReader reader = broker.ExecuteReader(queryString, parameters, cmdType);

                int           fieldCount = reader.FieldCount;
                List <string> columns    = new List <string>();
                object[]      values     = new object[fieldCount];
                for (int i = 0; i < fieldCount; i++)
                {
                    columns.Add(reader.GetName(i));
                }

                while (reader.Read())
                {
                    T t = new T();
                    reader.GetValues(values);
                    for (int i = 0; i < fieldCount; i++)
                    {
                        if (!(values[i] == DBNull.Value))
                        {
                            t.SetData(columns[i], values[i]);
                        }
                    }
                    result.Add(t);
                }
                reader.Dispose();
            }
            return(result);
        }