public List <string> Tables_List(Page page, MariaDb mariaDb) { List <string> list = new List <string>(); try { using (MySqlConnection mySqlConnection = new MySqlConnection()) { mySqlConnection.ConnectionString = $"datasource={mariaDb.Servidor}; username={mariaDb.Usuario}; password={mariaDb.Contrasenia}; database={mariaDb.BaseDatos}; Port={mariaDb.Port};"; mySqlConnection.Open(); MySqlCommand mySqlCommand = new MySqlCommand(); mySqlCommand.Connection = mySqlConnection; mySqlCommand.CommandType = CommandType.Text; mySqlCommand.CommandText = $"SHOW TABLES"; using (MySqlDataReader mySqlDataReader = mySqlCommand.ExecuteReader()) { while (mySqlDataReader.Read()) { list.Add($"{mySqlDataReader[0]}"); } } } // Libre de pecados return(list); } catch (Exception ex) { Notificacion.Toas(page, $"Los datos de conexión no son válidos; {ex.Message}"); return(list); } }
public bool Validar(Page page, MariaDb mariaDb) { try { using (MySqlConnection mySqlConnection = new MySqlConnection()) { mySqlConnection.ConnectionString = $"datasource={mariaDb.Servidor}; username={mariaDb.Usuario}; password={mariaDb.Contrasenia}; database={mariaDb.BaseDatos}; Port={mariaDb.Port};"; mySqlConnection.Open(); MySqlCommand mySqlCommand = new MySqlCommand(); mySqlCommand.Connection = mySqlConnection; mySqlCommand.CommandType = CommandType.Text; mySqlCommand.CommandText = "SELECT VERSION()"; mySqlCommand.ExecuteNonQuery(); } // Guardamos la conexion Guardar(mariaDb); // Libre de pecados return(true); } catch (Exception ex) { Notificacion.Toas(page, $"Los datos de conexión no son válidos; {ex.Message}"); return(false); } }
public DataTable Table_Details(Page page, MariaDb mariaDb, string tabla) { DataTable dataTable = new DataTable(); try { using (MySqlConnection mySqlConnection = new MySqlConnection()) { mySqlConnection.ConnectionString = $"datasource={mariaDb.Servidor}; username={mariaDb.Usuario}; password={mariaDb.Contrasenia}; database={mariaDb.BaseDatos}; Port={mariaDb.Port};"; mySqlConnection.Open(); MySqlCommand mySqlCommand = new MySqlCommand(); mySqlCommand.Connection = mySqlConnection; mySqlCommand.CommandType = CommandType.Text; mySqlCommand.CommandText = $"SHOW FULL COLUMNS FROM {tabla};"; MySqlDataAdapter mySqlDataAdapter = new MySqlDataAdapter(mySqlCommand); mySqlDataAdapter.Fill(dataTable); } // Libre de pecados return(dataTable); } catch (Exception ex) { Notificacion.Toas(page, $"Los datos de conexión no son válidos; {ex.Message}"); return(dataTable); } }
public string Generar(Page page, string tabla, List <Estructura> campos) { int iteracion = 0; try { StringBuilder stringBuilder = new StringBuilder(); #region Campos foreach (var row in campos) { switch (row.TipoDotNet) { case "int": stringBuilder.AppendLine($"public int {row.Nombre} {{ set; get; }} = 0;"); break; case "decimal": stringBuilder.AppendLine($"public decimal {row.Nombre} {{ set; get; }} = 0;"); break; case "bool": stringBuilder.AppendLine($"public bool {row.Nombre} {{ set; get; }} = false;"); break; case "DateTime": stringBuilder.AppendLine($"public DateTime {row.Nombre} {{ set; get; }} = new DateTime(1900, 01, 01);"); break; default: stringBuilder.AppendLine($"public string {row.Nombre} {{ set; get; }} = string.Empty;"); break; } } #endregion stringBuilder.AppendLine(); stringBuilder.AppendLine($"public dynamic Get(dynamic oIn)"); stringBuilder.AppendLine($"{{"); stringBuilder.AppendLine($" dynamic oOut = new dynamic();"); foreach (Estructura row in campos) { stringBuilder.AppendLine($" oOut.{row.Nombre} = oIn.{row.Nombre};"); } stringBuilder.AppendLine($" return oOut;"); stringBuilder.AppendLine($"}}"); return(stringBuilder.ToString()); } catch (Exception ex) { Notificacion.Toas(page, $"Ah ocurridoun error; {ex.Message}"); return(string.Empty); } }
public List <Estructura> Devolver(Page page, DataTable dataTable) { List <Estructura> lista = new List <Estructura>(); try { foreach (DataRow row in dataTable.Rows) { Estructura estructura = new Estructura(); estructura.Nombre = $"{row["Field"]}"; estructura.Comentario = $"{row["Comment"]}"; if ($"{row["key"]}".Length > 0) { estructura.Where = true; } if ($"{row["Null"]}" == "YES") { estructura.Nulo = true; } estructura.TipoMariaDb = $"{row["Type"]}"; estructura.TipoMariaDb = estructura.TipoMariaDb.Replace("0", string.Empty); estructura.TipoMariaDb = estructura.TipoMariaDb.Replace("1", string.Empty); estructura.TipoMariaDb = estructura.TipoMariaDb.Replace("2", string.Empty); estructura.TipoMariaDb = estructura.TipoMariaDb.Replace("3", string.Empty); estructura.TipoMariaDb = estructura.TipoMariaDb.Replace("4", string.Empty); estructura.TipoMariaDb = estructura.TipoMariaDb.Replace("5", string.Empty); estructura.TipoMariaDb = estructura.TipoMariaDb.Replace("6", string.Empty); estructura.TipoMariaDb = estructura.TipoMariaDb.Replace("7", string.Empty); estructura.TipoMariaDb = estructura.TipoMariaDb.Replace("8", string.Empty); estructura.TipoMariaDb = estructura.TipoMariaDb.Replace("9", string.Empty); estructura.TipoMariaDb = estructura.TipoMariaDb.Replace(",", string.Empty); estructura.TipoMariaDb = estructura.TipoMariaDb.Replace(".", string.Empty); estructura.TipoMariaDb = estructura.TipoMariaDb.Replace("(", string.Empty); estructura.TipoMariaDb = estructura.TipoMariaDb.Replace(")", string.Empty); switch (estructura.TipoMariaDb.ToLower()) { case "tinyint": estructura.TipoDotNet = "bool"; break; case "int": estructura.TipoDotNet = "int"; break; case "decimal": estructura.TipoDotNet = "decimal"; break; case "datetime": estructura.TipoDotNet = "DateTime"; break; default: estructura.TipoDotNet = "string"; break; } lista.Add(estructura); } } catch (Exception ex) { Notificacion.Toas(page, $"Ah ocurrido un error; {ex.Message}"); } string a = JsonConvert.SerializeObject(lista, Formatting.Indented); return(lista); }
public string Generar(Page page, string tabla, List <Estructura> campos) { int iteracion = 0; try { StringBuilder stringBuilder = new StringBuilder(); stringBuilder.AppendLine($"// {tabla}.cs"); stringBuilder.AppendLine("using System;"); stringBuilder.AppendLine("using System.Text;"); stringBuilder.AppendLine("using DataCloud.Libreria;"); stringBuilder.AppendLine("using MySql.Data.MySqlClient;"); stringBuilder.AppendLine(""); stringBuilder.AppendLine("namespace DataCloud"); stringBuilder.AppendLine("{"); stringBuilder.AppendLine($" /// <summary>"); stringBuilder.AppendLine($" /// Clase de {tabla}"); stringBuilder.AppendLine($" /// Generado automaticamente"); stringBuilder.AppendLine($" /// Leonardo Chuello ([email protected])"); stringBuilder.AppendLine($" /// {DateTime.Now:yyyy-MM-dd}"); stringBuilder.AppendLine($" /// </summary>"); stringBuilder.AppendLine($" public class {tabla}"); stringBuilder.AppendLine(" {"); stringBuilder.AppendLine($" private readonly PoolConexion _poolConexion = new PoolConexion();"); stringBuilder.AppendLine($""); stringBuilder.AppendLine($" private const string Select = \"SELECT {string.Join(", ", campos.Select(x => x.Nombre))} FROM {tabla}\";"); stringBuilder.AppendLine(""); #region Campos stringBuilder.AppendLine(" #region Field\n"); foreach (var row in campos) { switch (row.TipoDotNet) { case "int": stringBuilder.AppendLine($" /// <summary>"); stringBuilder.AppendLine($" /// {row.Comentario}"); stringBuilder.AppendLine($" /// </summary>"); stringBuilder.AppendLine($" public int {row.Nombre} {{ set; get; }} = 0;\n"); break; case "decimal": stringBuilder.AppendLine($" /// <summary>"); stringBuilder.AppendLine($" /// {row.Comentario}"); stringBuilder.AppendLine($" /// </summary>"); stringBuilder.AppendLine($" public decimal {row.Nombre} {{ set; get; }} = 0;\n"); break; case "bool": stringBuilder.AppendLine($" /// <summary>"); stringBuilder.AppendLine($" /// {row.Comentario}"); stringBuilder.AppendLine($" /// </summary>"); stringBuilder.AppendLine($" public bool {row.Nombre} {{ set; get; }} = false;\n"); break; case "DateTime": stringBuilder.AppendLine($" /// <summary>"); stringBuilder.AppendLine($" /// {row.Comentario}"); stringBuilder.AppendLine($" /// </summary>"); stringBuilder.AppendLine($" public DateTime {row.Nombre} {{ set; get; }} = new DateTime(1900, 01, 01);\n"); break; default: stringBuilder.AppendLine($" /// <summary>"); stringBuilder.AppendLine($" /// {row.Comentario}"); stringBuilder.AppendLine($" /// </summary>"); stringBuilder.AppendLine($" public string {row.Nombre} {{ set; get; }} = string.Empty;\n"); break; } } stringBuilder.AppendLine(" #endregion"); #endregion #region Methods stringBuilder.AppendLine(""); stringBuilder.AppendLine(" #region Methods"); stringBuilder.AppendLine(""); stringBuilder.AppendLine(""); stringBuilder.AppendLine(""); stringBuilder.AppendLine(" #endregion"); #endregion #region Bloque if (campos.First().Nombre.ToLower() == "id") { stringBuilder.AppendLine(""); stringBuilder.AppendLine(" #region Block's"); #region Insert Block stringBuilder.AppendLine(""); stringBuilder.AppendLine($" public string Insert_Block({tabla} {Cadena.PriMin(tabla)})"); stringBuilder.AppendLine($" {{"); stringBuilder.AppendLine($" StringBuilder stringBuilder = new StringBuilder();"); stringBuilder.AppendLine($" stringBuilder.AppendLine(\"\");"); stringBuilder.AppendLine($" stringBuilder.AppendLine(\"-- Insert {tabla}\");"); stringBuilder.AppendLine($" stringBuilder.AppendLine(\"INSERT INTO {tabla} (\");"); // Cabecera iteracion = 0; foreach (var row in campos) { ++iteracion; stringBuilder.AppendLine(iteracion != campos.Count ? $" stringBuilder.AppendLine(\"{row.Nombre}, -- {row.Nombre} | {row.TipoMariaDb} | {row.TipoDotNet}\");" : $" stringBuilder.AppendLine(\"{row.Nombre} -- {row.Nombre} | {row.TipoMariaDb} | {row.TipoDotNet}\");"); } // Values stringBuilder.AppendLine($" stringBuilder.AppendLine(\") VALUES (\");"); //Detalles iteracion = 0; foreach (var row in campos) { ++iteracion; if (!row.Nulo) { stringBuilder.AppendLine(iteracion != campos.Count ? $" stringBuilder.AppendLine($\"'{{_poolConexion.Remplazar({Cadena.PriMin(tabla)}.{row.Nombre})}}', -- {row.Nombre} | {row.TipoMariaDb} | {row.TipoDotNet}\");" : $" stringBuilder.AppendLine($\"'{{_poolConexion.Remplazar({Cadena.PriMin(tabla)}.{row.Nombre})}}'); -- {row.Nombre} | {row.TipoMariaDb} | {row.TipoDotNet}\");"); } else { if (iteracion != campos.Count) { stringBuilder.AppendLine($" stringBuilder.AppendLine(!_poolConexion.Vacia({Cadena.PriMin(tabla)}.{row.Nombre})"); stringBuilder.AppendLine($" ? $\"'{{_poolConexion.Remplazar({Cadena.PriMin(tabla)}.{row.Nombre})}}', -- {row.Nombre} | {row.TipoMariaDb} | {row.TipoDotNet}\""); stringBuilder.AppendLine($" : \"NULL, -- {row.Nombre} | {row.TipoMariaDb} | {row.TipoDotNet}\");"); } else { stringBuilder.AppendLine($" stringBuilder.AppendLine(!_poolConexion.Vacia({Cadena.PriMin(tabla)}.{row.Nombre})"); stringBuilder.AppendLine($" ? $\"'{{_poolConexion.Remplazar({Cadena.PriMin(tabla)}.{row.Nombre})}}', -- {row.Nombre} | {row.TipoMariaDb} | {row.TipoDotNet}\""); stringBuilder.AppendLine($" : \"NULL -- {row.Nombre} | {row.TipoMariaDb} | {row.TipoDotNet}\");"); } } } stringBuilder.AppendLine($" return stringBuilder.ToString();"); stringBuilder.AppendLine($" }}"); #endregion #region Update Block if (campos.Count(x => x.Nombre.ToLower() == "id") == 1) { stringBuilder.AppendLine(""); stringBuilder.AppendLine($" public string Update_Block({tabla} {Cadena.PriMin(tabla)})"); stringBuilder.AppendLine($" {{"); stringBuilder.AppendLine($" StringBuilder stringBuilder = new StringBuilder();"); stringBuilder.AppendLine($" stringBuilder.AppendLine(\"\");"); stringBuilder.AppendLine($" stringBuilder.AppendLine(\"-- Update {tabla}\");"); stringBuilder.AppendLine($" stringBuilder.AppendLine(\"UPDATE {tabla} SET\");"); // Cabecera iteracion = 0; var listUpdate01 = campos.Where(x => x.Nombre.ToLower() != "id").ToList(); foreach (var row in listUpdate01) { iteracion = iteracion + 1; if (!row.Nulo) { stringBuilder.AppendLine(iteracion != listUpdate01.Count ? $" stringBuilder.AppendLine($\"{row.Nombre} = '{{_poolConexion.Remplazar({Cadena.PriMin(tabla)}.{row.Nombre})}}', -- {row.Nombre} | {row.TipoMariaDb} | {row.TipoDotNet}\");" : $" stringBuilder.AppendLine($\"{row.Nombre} = '{{_poolConexion.Remplazar({Cadena.PriMin(tabla)}.{row.Nombre})}}' -- {row.Nombre} | {row.TipoMariaDb} | {row.TipoDotNet}\");"); } else { if (iteracion != listUpdate01.Count) { stringBuilder.AppendLine($" stringBuilder.AppendLine(!_poolConexion.Vacia({Cadena.PriMin(tabla)}.{row.Nombre})"); stringBuilder.AppendLine($" ? $\"{row.Nombre} = '{{_poolConexion.Remplazar({Cadena.PriMin(tabla)}.{row.Nombre})}}', -- {row.Nombre} | {row.TipoMariaDb} | {row.TipoDotNet}\""); stringBuilder.AppendLine($" : \"{row.Nombre} = NULL, -- {row.Nombre} | {row.TipoMariaDb} | {row.TipoDotNet}\");"); } else { stringBuilder.AppendLine($" stringBuilder.AppendLine(!_poolConexion.Vacia({Cadena.PriMin(tabla)}.{row.Nombre})"); stringBuilder.AppendLine($" ? $\"{row.Nombre} = '{{_poolConexion.Remplazar({Cadena.PriMin(tabla)}.{row.Nombre})}}' -- {row.Nombre} | {row.TipoMariaDb} | {row.TipoDotNet}\""); stringBuilder.AppendLine($" : \"{row.Nombre} = NULL -- {row.Nombre} | {row.TipoMariaDb} | {row.TipoDotNet}\");"); } } } // Where stringBuilder.AppendLine($" stringBuilder.AppendLine(\"WHERE\");"); var rowUpdate = campos.FirstOrDefault(x => x.Nombre.ToLower() == "id") ?? new Estructura(); stringBuilder.AppendLine($" stringBuilder.AppendLine($\"{rowUpdate.Nombre} = '{{_poolConexion.Remplazar({Cadena.PriMin(tabla)}.{rowUpdate.Nombre})}}'; -- {rowUpdate.Nombre} | {rowUpdate.TipoMariaDb} | {rowUpdate.TipoDotNet}\");"); stringBuilder.AppendLine($" return stringBuilder.ToString();"); stringBuilder.AppendLine($" }}"); } #endregion #region Delete Block if (campos.Count(x => x.Nombre.ToLower() == "id") == 1) { stringBuilder.AppendLine(""); stringBuilder.AppendLine($" public string Delete_Block({tabla} {Cadena.PriMin(tabla)})"); stringBuilder.AppendLine($" {{"); stringBuilder.AppendLine($" StringBuilder stringBuilder = new StringBuilder();"); stringBuilder.AppendLine($" stringBuilder.AppendLine(\"\");"); stringBuilder.AppendLine($" stringBuilder.AppendLine(\"-- Delete {tabla}\");"); stringBuilder.AppendLine($" stringBuilder.AppendLine(\"DELETE FROM {tabla} WHERE\");"); var rowDelete = campos.FirstOrDefault(x => x.Nombre.ToLower() == "id") ?? new Estructura(); stringBuilder.AppendLine($" stringBuilder.AppendLine($\"{rowDelete.Nombre} = '{{_poolConexion.Remplazar({Cadena.PriMin(tabla)}.{rowDelete.Nombre})}}'; -- {rowDelete.Nombre} | {rowDelete.TipoMariaDb} | {rowDelete.TipoDotNet}\");"); stringBuilder.AppendLine($" return stringBuilder.ToString();"); stringBuilder.AppendLine($" }}"); } #endregion stringBuilder.AppendLine(" #endregion"); } #endregion #region Maker stringBuilder.AppendLine("\n #region Maker"); stringBuilder.AppendLine($""); stringBuilder.AppendLine($" private {tabla} Maker(MySqlDataReader dtReader)"); stringBuilder.AppendLine($" {{"); stringBuilder.AppendLine($" " + $"{tabla} {Cadena.PriMin(tabla)} = new {tabla}();"); foreach (var row in campos) { switch (row.TipoDotNet) { case "int": stringBuilder.AppendLine($" {Cadena.PriMin(tabla)}.{row.Nombre} = dtReader.IsDBNull(dtReader.GetOrdinal(\"{row.Nombre}\")) ? 0 : dtReader.GetInt32(dtReader.GetOrdinal(\"{row.Nombre}\"));"); break; case "decimal": stringBuilder.AppendLine($" {Cadena.PriMin(tabla)}.{row.Nombre} = dtReader.IsDBNull(dtReader.GetOrdinal(\"{row.Nombre}\")) ? 0 : dtReader.GetDecimal(dtReader.GetOrdinal(\"{row.Nombre}\"));"); break; case "bool": stringBuilder.AppendLine($" {Cadena.PriMin(tabla)}.{row.Nombre} = !dtReader.IsDBNull(dtReader.GetOrdinal(\"{row.Nombre}\")) && dtReader.GetBoolean(dtReader.GetOrdinal(\"{row.Nombre}\"));"); break; case "DateTime": stringBuilder.AppendLine($" {Cadena.PriMin(tabla)}.{row.Nombre} = dtReader.IsDBNull(dtReader.GetOrdinal(\"{row.Nombre}\")) ? new DateTime(1900, 01, 01) : dtReader.GetDateTime(dtReader.GetOrdinal(\"{row.Nombre}\"));"); break; default: stringBuilder.AppendLine($" {Cadena.PriMin(tabla)}.{row.Nombre} = dtReader.IsDBNull(dtReader.GetOrdinal(\"{row.Nombre}\")) ? string.Empty : dtReader.GetString(dtReader.GetOrdinal(\"{row.Nombre}\"));"); break; } } stringBuilder.AppendLine($" return {Cadena.PriMin(tabla)};"); stringBuilder.AppendLine($" }}"); stringBuilder.AppendLine(" #endregion"); #endregion stringBuilder.AppendLine(" }"); stringBuilder.AppendLine("}"); return(stringBuilder.ToString()); } catch (Exception ex) { Notificacion.Toas(page, $"Ah ocurridoun error; {ex.Message}"); return(string.Empty); } }