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