⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 phinvsprovider.cs

📁 EpiInfo 开源的导航系统远程序,不知道在哪里下的了,分享一下,有兴趣的
💻 CS
字号:
using System;
using System.Data;
using System.Data.Common;
using Epi.Data;

namespace Epi.Data.Services
{
    /// <summary>
    /// Providers an interface into PHIN vocabulary definitions database.
    /// </summary>
	public class PHINVSProvider
    {
        #region Fields
        private IDbDriver db;
        private static PHINVSProvider instance;
        private static Object classLock = typeof(PHINVSProvider);
        #endregion Fields

        #region Constructors
        //public PHINVSProvider()
        //    : this(DatabaseFactory.CreateDatabaseInstanceByConfiguredName(DatabaseFactory.KnownDatabaseNames.Phin))
        //{

        //}

        //private PHINVSProvider(IDbDriver db)
        //{
        //    this.db = db;
        //}
        private PHINVSProvider()
        {
            IDbDriverFactory dbFactory = DbDriverFactoryCreator.GetDbDriverFactory(Configuration.AccessDriver);
            //this.db = DatabaseFactoryCreator.CreateDatabaseInstanceByConfiguredName(DatabaseFactoryCreator.KnownDatabaseNames.Phin);
            this.db = dbFactory.CreateDatabaseObjectByConfiguredName(DbDriverFactoryCreator.KnownDatabaseNames.Phin);  
        }
        #endregion Constructors

        #region Public Properties
        /// <summary>
        /// Gets an instance of this singleton class
        /// </summary>
        public static PHINVSProvider Instance
        {
            get
            {
                lock (classLock)
                {
                    if (instance == null)
                    {
                        instance = new PHINVSProvider();
                    }
                    return instance;
                }
            }
        }
        #endregion Public Properties

        #region Protected Properties
        /// <summary>
        /// Gets or Sets the datatabase.
        /// </summary>
        protected virtual IDbDriver Db
        {
            get
            {
                return db;
            }
            set
            {
                db = value;
            }
        }
        #endregion Protected Properties

        #region Public Methods
        /// <summary>
		/// 
		/// </summary>
		/// <returns></returns>
        //[Obsolete("Use of DataTable in this context is no different than the use of a multidimensional System.Object array (not recommended).", false)]
		public DataTable GetDomains()
		{
			string queryString = " SELECT [Code], [Name] FROM DOMAINS ORDER BY [Name]";
			Query query = Db.CreateQuery(queryString);
			return Db.Select(query);
		}

		/// <summary>
		/// 
		/// </summary>
		/// <param name="domainCode"></param>
		/// <returns></returns>
        //[Obsolete("Use of DataTable in this context is no different than the use of a multidimensional System.Object array (not recommended).", false)]
		public DataTable GetValueSets(string domainCode)
		{
			string queryString = " SELECT [Code], [Name] FROM ValueSets V INNER JOIN ValueSets_Domains VD ON V.Code = VD.ValueSetCode Where [VD.DomainCode] = @DomainCode ORDER BY [Name]";
			Query query = Db.CreateQuery(queryString);
			query.Parameters.Add(new QueryParameter("@DomainCode", DbType.String, domainCode));
			return Db.Select(query);
		}

		/// <summary>
		/// 
		/// </summary>
		/// <param name="valueSetCode"></param>
		/// <returns></returns>
        //[Obsolete("Use of DataTable in this context is no different than the use of a multidimensional System.Object array (not recommended).", false)]
		public DataTable GetConcepts(string valueSetCode)
		{
            try
            {
                string queryString = " SELECT [Code], [Name] FROM [" + valueSetCode + "] ORDER BY [Name] ";
                Query query = Db.CreateQuery(queryString);
                return Db.Select(query);
            }
			finally
			{
			}
		}
		#endregion Public Methods
	}
}

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -