public IActionResult ExecuteQueryConfig(string query)
        {
            IDatabaseFactory factory = null;

            string factorytype = AppSettings.Factory;


            if (factorytype == "sqlclient")
            {
                factory = new SqlClientFactory();
            }
            else
            {
                factory = new OleDbFactory();
            }

            DatabaseHelper helper = new DatabaseHelper(factory);

            query = query.ToLower();

            if (query.StartsWith("select"))
            {
                DbDataReader reader = helper.ExecuteSelect(query);
                return(View("ShowTable", reader));
            }
            else
            {
                int i = helper.ExecuteAction(query);
                return(View("ShowResult", i));
            }
        }
Пример #2
0
        /// <summary>
        /// 获取用于填充 System.Data.DataSet 的对象
        /// </summary>
        /// <param name="dbCommand"></param>
        /// <returns></returns>
        private DbDataAdapter CreateDbDataAdapter(DbCommand dbCommand)
        {
            DbDataAdapter dbDataAdapter;

            switch (databaseType)
            {
            case DatabaseType.SqlServer:
                dbDataAdapter = new SqlDataAdapter(dbCommand as SqlCommand);
                break;

            case DatabaseType.Oracle:
                dbDataAdapter = new OracleDataAdapter(dbCommand as OracleCommand);
                break;

            case DatabaseType.MySql:
                dbDataAdapter = new MySqlDataAdapter(dbCommand as MySqlCommand);
                break;

#pragma warning disable CS0612 // #pragma 警告后应为 disable 或 restore
            case DatabaseType.OleDb:
#pragma warning restore CS0612
#if NET20 || NET35 || NET40 || NET45 || NET451 || NET452 || NET46 || NET461 || NET462 || NET47 || NET471 || NET472 || NET48 || NET49
                dbDataAdapter = OleDbFactory.CreateOleDbDataAdapter(dbCommand);
#else
                throw new Exception("必须是.NET Framework框架才可以使用,Database Type:" + databaseType.ToString());
#endif
            default:
                throw new Exception("数据库类型有误或未初始化 databaseType:" + databaseType.ToString());
            }

            return(dbDataAdapter);
        }
Пример #3
0
        /// <summary>
        /// Sql初始化参数 MakeParam("@name" , 枚举.VarChar.ToString() , 50 ,value) as SqlParameter
        /// </summary>
        /// <param name="paramName">参数名称</param>
        /// <param name="dbType">SqlDbType/MySqlDbType枚举</param>
        /// <param name="size">参数长度</param>
        /// <param name="direction">参数类型</param>
        /// <param name="value">参数值</param>
        /// <returns>SqlParameter/MySqlParameter类型</returns>
        public DbParameter MakeParam(string paramName, String dbType, Int32 size, ParameterDirection direction, object value)
        {
            DbParameter dbParameter = null;

            switch (databaseType)
            {
            case DatabaseType.SqlServer:
                dbParameter = new SqlParameter();
                ((SqlParameter)dbParameter).SqlDbType = (SqlDbType)Enum.Parse(typeof(SqlDbType), dbType);
                break;

            case DatabaseType.Oracle:
                dbParameter = new OracleParameter();
                ((OracleParameter)dbParameter).OracleDbType = (OracleDbType)Enum.Parse(typeof(OracleDbType), dbType);
                break;

            case DatabaseType.MySql:
                dbParameter = new MySqlParameter();
                ((MySqlParameter)dbParameter).MySqlDbType = (MySqlDbType)Enum.Parse(typeof(MySqlDbType), dbType);
                break;

#pragma warning disable CS0612 // #pragma 警告后应为 disable 或 restore
            case DatabaseType.OleDb:
#pragma warning restore CS0612
#if NET20 || NET35 || NET40 || NET45 || NET451 || NET452 || NET46 || NET461 || NET462 || NET47 || NET471 || NET472 || NET48 || NET49
                dbParameter = OleDbFactory.CreateOleDbParameter(paramName, (DbType)Enum.Parse(typeof(DbType), dbType), size, value);
#else
                throw new Exception("必须是.NET Framework框架才可以使用,Database Type:" + databaseType.ToString());
#endif
            default:
                break;
            }
            dbParameter.ParameterName = paramName;
            if (size > 0)
            {
                dbParameter.Size = size;
            }
            dbParameter.Direction = direction;

            if (!(direction == ParameterDirection.Output && value == null))
            {
                dbParameter.Value = value;
            }

            return(dbParameter);
        }
Пример #4
0
        /// <summary>
        /// Connect to database
        /// 1.Create DbClient (database client) object
        /// 2.Create a browser object (if available for the provider)
        /// </summary>
        void connect()
        {
            simpleDebug.dump();
            // 1.Create DbClient (database client) object

            IClientFactory clientFactory;


            switch (provider)
            {
            case "MSSQL":
                clientFactory = new SqlFactory();

                break;

            case "ORACLE":
                clientFactory = new OleDbFactory();
                break;

            case "SQLite":
                clientFactory = new SQLiteFactory();
                break;

            default: return;
            }

            dbClient = new DbClient(clientFactory, connectString, connectionName, provider, server, login);
            // frmLoader c = new frmLoader("Connecting...");
            // c.Show();
            // c.Refresh();
            lblapp.Text += " Connecting...." + connectionName;
            bool success = dbClient.Connect();

            // c.Close();


            if (!success)
            {
                lblapp.Text = zenQuery.Logic.mMisc.appVersion;
                MessageBox.Show("Unable to connect: " + dbClient.Error, "zenQuery", MessageBoxButtons.OK, MessageBoxIcon.Error);
                dbClient.Dispose();
                return;
            }

            //2. Create a browser object (if available for the provider)

            if (provider == "MSSQL")                                    // SQL Server
            {
                browser = new SqlBrowser(dbClient);
            }

            if (provider == "ORACLE")                                   // Oracle
            {
                browser = new OracleBrowser(dbClient);
            }

            if (provider == "SQLite")                                   // Oracle
            {
                browser = new SQLite(dbClient);
            }


            DialogResult = DialogResult.OK;
        }