private void ConstruirDefinicionTabla(String[] sColumnsPrimary) { defTabla = new Definicion(); FilaDefinicion fd = null; for (int i = 0; i < dtTabla.Rows.Count; i++) { fd = new FilaDefinicion(); fd.NombreCampo = dtTabla.Rows[i]["COLUMN_NAME"].ToString(); fd.TipoBD = dtTabla.Rows[i]["DATA_TYPE"].ToString().Substring(0, 1).ToUpper() + dtTabla.Rows[i]["DATA_TYPE"].ToString().Substring(1, dtTabla.Rows[i]["DATA_TYPE"].ToString().Length - 1).ToLower(); if ((fd.TipoBD.ToLower() == "numeric" || fd.TipoBD.ToLower() == "decimal") || ((dtTabla.Rows[i]["CHARACTER_MAXIMUM_LENGTH"] != DBNull.Value && Convert.ToDouble(dtTabla.Rows[i]["CHARACTER_MAXIMUM_LENGTH"]) > 0) && (fd.TipoBD.ToLower() != "bit" && fd.TipoBD.ToLower() != "int" && fd.TipoBD.ToLower() != "datetime"))) { fd.Tamano = Convert.ToInt32(dtTabla.Rows[i]["CHARACTER_MAXIMUM_LENGTH"] != DBNull.Value && dtTabla.Rows[i]["CHARACTER_MAXIMUM_LENGTH"].ToString() != "0" ? dtTabla.Rows[i]["CHARACTER_MAXIMUM_LENGTH"] : (dtTabla.Rows[i]["NUMERIC_PRECISION"] != DBNull.Value ? dtTabla.Rows[i]["NUMERIC_PRECISION"] : -1)); fd.Escala = Convert.ToInt32(dtTabla.Rows[i]["NUMERIC_SCALE"] != DBNull.Value && dtTabla.Rows[i]["NUMERIC_SCALE"].ToString() != "0" ? dtTabla.Rows[i]["NUMERIC_SCALE"] : -1); } else { fd.Tamano = -1; fd.Escala = -1; } fd.ClavePrimaria = Convert.ToBoolean(dtTabla.Rows[i]["IS_PRIMARY_KEY"]); fd.ClaveForanea = Convert.ToBoolean(dtTabla.Rows[i]["IS_FOREIGN_KEY"]); fd.IsNotNull = !Convert.ToBoolean(dtTabla.Rows[i]["IS_NULLABLE"]); setOpcionesSegunTipoDato(ref fd); defTabla.Filas.Add(fd); } //Si la tabla no tiene primary key definida se establece por defecto la primer columna como primary key if (!defTabla.Filas.Exists(pk => pk.ClavePrimaria == true)) { defTabla.Filas.ToArray()[0].ClavePrimaria = true; } ReferenciaDefinicion rd = null; for (int i = 0; i < dtReferencias.Rows.Count; i++) { rd = new ReferenciaDefinicion(); rd.TablaPadre = dtReferencias.Rows[i]["parentTable"].ToString(); rd.ColumnaPadre = dtReferencias.Rows[i]["parentColumn"].ToString(); rd.TablaReferenciada = dtReferencias.Rows[i]["referencedTable"].ToString(); rd.ColumnaReferenciada = dtReferencias.Rows[i]["referencedColumn"].ToString(); defTabla.Referencias.Add(rd); } }
private string setInformacionFila(FilaDefinicion fila, string texto) { texto = texto.Replace("<FieldName>", fila.NombreCampo); texto = texto.Replace("<FieldDbType>", fila.TipoBD); texto = texto.Replace("<FieldType>", fila.TipoPrimitivo); texto = texto.Replace("<FieldPrecision>", (fila.Tamano != -1 ? "(" + fila.Tamano.ToString() : "")); texto = texto.Replace("<FieldPrecision2>", (fila.Tamano != -1 ? "," + fila.Tamano.ToString() : "")); texto = texto.Replace("<FieldScale>", (fila.Escala != -1 ? "," + fila.Escala.ToString() : "") + (fila.Tamano != -1 ? ")" : "")); texto = texto.Replace("<ControlByDataType>", fila.Control); texto = texto.Replace("<PrefixControl>", fila.ControlPrefijo); texto = texto.Replace("<AtributesControl>", fila.ControlAtributos); texto = texto.Replace("<ControlPropValue>", fila.ControlPropiedadDato); texto = texto.Replace("<DefaultValue>", fila.ValorPorDefecto); return(texto); }
private void setOpcionesSegunTipoDato(ref FilaDefinicion fila) { String TamanoMinimo; String TamanoMaximo; String atributos; switch (fila.TipoBD.ToLower()) { case "bit": fila.TipoPrimitivo = "Boolean"; fila.Control = "CheckBox"; fila.ControlPrefijo = "chk"; fila.ControlPropiedadDato = "Checked"; fila.ValorPorDefecto = "False"; break; case "varchar": fila.TipoPrimitivo = "String"; fila.Control = "TextBox"; fila.ControlPrefijo = "txt"; fila.ControlPropiedadDato = "Text"; TamanoMinimo = fila.IsNotNull ? "1" : "0"; TamanoMaximo = fila.Tamano == -1 ? "50" : fila.Tamano.ToString(); atributos = " MaxLength=\"" + TamanoMaximo.ToString() + "\" " + " title=\"Ingrese el/la " + fila.NombreCampo + " (" + TamanoMaximo + " digitos max).\" "; if (fila.IsNotNull) { atributos += " required=\"required\""; } atributos += " pattern=\"[0-9A-Za-z\\ñ\\Ñ]{" + TamanoMinimo + "," + TamanoMaximo + "}\" "; fila.ControlAtributos = atributos; fila.ValorPorDefecto = ""; break; case "int": fila.TipoPrimitivo = "Int32"; if (fila.ClaveForanea) { fila.Control = "DropDownList"; fila.ControlPrefijo = "ddl"; fila.ControlPropiedadDato = "SelectedValue"; } else { fila.Control = "TextBox"; fila.ControlPrefijo = "txt"; fila.ControlPropiedadDato = "Text"; TamanoMinimo = fila.IsNotNull ? "1" : "0"; TamanoMaximo = fila.Tamano == -1 ? "50" : fila.Tamano.ToString(); atributos = " MaxLength=\"" + TamanoMaximo.ToString() + "\" " + " title=\"Ingrese el/la " + fila.NombreCampo + " (" + TamanoMaximo + " digitos max).\" "; if (fila.IsNotNull) { atributos += " required=\"required\""; } atributos += " pattern=\"[0-9]{" + TamanoMinimo + "," + TamanoMaximo + "}\" "; fila.ControlAtributos = atributos; } fila.ValorPorDefecto = "-1"; break; case "datetime": fila.TipoPrimitivo = "DateTime"; fila.Control = "TextBox"; fila.ControlPrefijo = "txt"; fila.ControlPropiedadDato = "Text"; atributos = " title=\"Ingrese el/la " + fila.NombreCampo + "."; atributos += " TextMode=\"Date\" "; if (fila.IsNotNull) { atributos += " required=\"required\""; } fila.ControlAtributos = atributos; fila.ValorPorDefecto = ""; break; case "smalldatetime": fila.TipoPrimitivo = "DateTime"; fila.Control = "TextBox"; fila.ControlPrefijo = "txt"; fila.ControlPropiedadDato = "Text"; TamanoMinimo = fila.IsNotNull ? "1" : "0"; TamanoMaximo = fila.Tamano == -1 ? "50" : fila.Tamano.ToString(); atributos = " MaxLength=\"" + TamanoMaximo.ToString() + "\" " + " title=\"Ingrese el/la " + fila.NombreCampo + " (" + TamanoMaximo + " digitos max).\" "; if (fila.IsNotNull) { atributos += " required=\"required\""; } atributos += " pattern=\"[0-9]{" + TamanoMinimo + "," + TamanoMaximo + "}\" "; fila.ControlAtributos = atributos; fila.ValorPorDefecto = ""; break; case "date": fila.TipoPrimitivo = "DateTime"; fila.Control = "TextBox"; fila.ControlPrefijo = "txt"; fila.ControlPropiedadDato = "Text"; atributos = " title=\"Ingrese el/la " + fila.NombreCampo + "."; atributos += " TextMode=\"Date\" "; if (fila.IsNotNull) { atributos += " required=\"required\""; } fila.ControlAtributos = atributos; fila.ValorPorDefecto = ""; break; case "time": fila.TipoPrimitivo = "DateTime"; fila.Control = "TextBox"; fila.ControlPrefijo = "txt"; fila.ControlPropiedadDato = "Text"; atributos = " title=\"Ingrese el/la " + fila.NombreCampo + "."; atributos += " TextMode=\"Date\" "; if (fila.IsNotNull) { atributos += " required=\"required\""; } fila.ControlAtributos = atributos; fila.ValorPorDefecto = ""; break; case "timestamp": fila.TipoPrimitivo = "Int32"; fila.Control = "TextBox"; fila.ControlPrefijo = "txt"; fila.ControlPropiedadDato = "Text"; TamanoMinimo = fila.IsNotNull ? "1" : "0"; TamanoMaximo = fila.Tamano == -1 ? "50" : fila.Tamano.ToString(); atributos = " MaxLength=\"" + TamanoMaximo.ToString() + "\" " + " title=\"Ingrese el/la " + fila.NombreCampo + " (" + TamanoMaximo + " digitos max).\" "; if (fila.IsNotNull) { atributos += " required=\"required\""; } atributos += " pattern=\"[0-9A-Za-z\\ñ\\Ñ]{" + TamanoMinimo + "," + TamanoMaximo + "}\" "; fila.ControlAtributos = atributos; fila.ValorPorDefecto = ""; break; case "tinyint": fila.TipoPrimitivo = "Int16"; fila.Control = "TextBox"; fila.ControlPrefijo = "txt"; fila.ControlPropiedadDato = "Text"; TamanoMinimo = fila.IsNotNull ? "1" : "0"; TamanoMaximo = fila.Tamano == -1 ? "50" : fila.Tamano.ToString(); atributos = " MaxLength=\"" + TamanoMaximo.ToString() + "\" " + " title=\"Ingrese el/la " + fila.NombreCampo + " (" + TamanoMaximo + " digitos max).\" "; if (fila.IsNotNull) { atributos += " required=\"required\""; } atributos += " pattern=\"[0-9]{" + TamanoMinimo + "," + TamanoMaximo + "}\" "; fila.ControlAtributos = atributos; fila.ValorPorDefecto = "-1"; break; case "smallint": fila.TipoPrimitivo = "Int16"; fila.Control = "TextBox"; fila.ControlPrefijo = "txt"; fila.ControlPropiedadDato = "Text"; TamanoMinimo = fila.IsNotNull ? "1" : "0"; TamanoMaximo = fila.Tamano == -1 ? "50" : fila.Tamano.ToString(); atributos = " MaxLength=\"" + TamanoMaximo.ToString() + "\" " + " title=\"Ingrese el/la " + fila.NombreCampo + " (" + TamanoMaximo + " digitos max).\" "; if (fila.IsNotNull) { atributos += " required=\"required\""; } atributos += " pattern=\"[0-9]{" + TamanoMinimo + "," + TamanoMaximo + "}\" "; fila.ControlAtributos = atributos; fila.ValorPorDefecto = "-1"; break; case "bigint": fila.TipoPrimitivo = "Int64"; fila.Control = "TextBox"; fila.ControlPrefijo = "txt"; fila.ControlPropiedadDato = "Text"; TamanoMinimo = fila.IsNotNull ? "1" : "0"; TamanoMaximo = fila.Tamano == -1 ? "50" : fila.Tamano.ToString(); atributos = " MaxLength=\"" + TamanoMaximo.ToString() + "\" " + " title=\"Ingrese el/la " + fila.NombreCampo + " (" + TamanoMaximo + " digitos max).\" "; if (fila.IsNotNull) { atributos += " required=\"required\""; } atributos += " pattern=\"[0-9]{" + TamanoMinimo + "," + TamanoMaximo + "}\" "; fila.ControlAtributos = atributos; fila.ValorPorDefecto = "-1"; break; case "float": fila.TipoPrimitivo = "Double"; fila.Control = "TextBox"; fila.ControlPrefijo = "txt"; fila.ControlPropiedadDato = "Text"; TamanoMinimo = fila.IsNotNull ? "1" : "0"; TamanoMaximo = fila.Tamano == -1 ? "50" : fila.Tamano.ToString(); atributos = " MaxLength=\"" + TamanoMaximo.ToString() + "\" " + " title=\"Ingrese el/la " + fila.NombreCampo + " (" + TamanoMaximo + " digitos max).\" "; if (fila.IsNotNull) { atributos += " required=\"required\""; } atributos += " pattern=\"[0-9]{" + TamanoMinimo + "," + TamanoMaximo + "}\" "; fila.ControlAtributos = atributos; fila.ValorPorDefecto = "-1"; break; case "decimal": fila.TipoPrimitivo = "Decimal"; fila.Control = "TextBox"; fila.ControlPrefijo = "txt"; fila.ControlPropiedadDato = "Text"; TamanoMinimo = fila.IsNotNull ? "1" : "0"; TamanoMaximo = fila.Tamano == -1 ? "50" : fila.Tamano.ToString(); atributos = " MaxLength=\"" + TamanoMaximo.ToString() + "\" " + " title=\"Ingrese el/la " + fila.NombreCampo + " (" + TamanoMaximo + " digitos max).\" "; if (fila.IsNotNull) { atributos += " required=\"required\""; } atributos += " pattern=\"[0-9]{" + TamanoMinimo + "," + TamanoMaximo + "}\" "; fila.ControlAtributos = atributos; fila.ValorPorDefecto = "-1"; break; case "numeric": fila.TipoPrimitivo = "Decimal"; fila.Control = "TextBox"; fila.ControlPrefijo = "txt"; fila.ControlPropiedadDato = "Text"; TamanoMinimo = fila.IsNotNull ? "1" : "0"; TamanoMaximo = fila.Tamano == -1 ? "50" : fila.Tamano.ToString(); atributos = " MaxLength=\"" + TamanoMaximo.ToString() + "\" " + " title=\"Ingrese el/la " + fila.NombreCampo + " (" + TamanoMaximo + " digitos max).\" "; if (fila.IsNotNull) { atributos += " required=\"required\""; } atributos += " pattern=\"[0-9]{" + TamanoMinimo + "," + TamanoMaximo + "}\" "; fila.ControlAtributos = atributos; fila.ValorPorDefecto = "-1"; break; case "real": fila.TipoPrimitivo = "Int32"; fila.Control = "TextBox"; fila.ControlPrefijo = "txt"; fila.ControlPropiedadDato = "Text"; TamanoMinimo = fila.IsNotNull ? "1" : "0"; TamanoMaximo = fila.Tamano == -1 ? "50" : fila.Tamano.ToString(); atributos = " MaxLength=\"" + TamanoMaximo.ToString() + "\" " + " title=\"Ingrese el/la " + fila.NombreCampo + " (" + TamanoMaximo + " digitos max).\" "; if (fila.IsNotNull) { atributos += " required=\"required\""; } atributos += " pattern=\"[0-9]{" + TamanoMinimo + "," + TamanoMaximo + "}\" "; fila.ControlAtributos = atributos; fila.ValorPorDefecto = "-1"; break; case "money": fila.TipoPrimitivo = "Decimal"; fila.Control = "TextBox"; fila.ControlPrefijo = "txt"; fila.ControlPropiedadDato = "Text"; TamanoMinimo = fila.IsNotNull ? "1" : "0"; TamanoMaximo = fila.Tamano == -1 ? "50" : fila.Tamano.ToString(); atributos = " MaxLength=\"" + TamanoMaximo.ToString() + "\" " + " title=\"Ingrese el/la " + fila.NombreCampo + " (" + TamanoMaximo + " digitos max).\" "; if (fila.IsNotNull) { atributos += " required=\"required\""; } atributos += " pattern=\"[0-9]{" + TamanoMinimo + "," + TamanoMaximo + "}\" "; fila.ControlAtributos = atributos; fila.ValorPorDefecto = "-1"; break; case "smallmoney": fila.TipoPrimitivo = "Decimal"; fila.Control = "TextBox"; fila.ControlPrefijo = "txt"; fila.ControlPropiedadDato = "Text"; TamanoMinimo = fila.IsNotNull ? "1" : "0"; TamanoMaximo = fila.Tamano == -1 ? "50" : fila.Tamano.ToString(); atributos = " MaxLength=\"" + TamanoMaximo.ToString() + "\" " + " title=\"Ingrese el/la " + fila.NombreCampo + " (" + TamanoMaximo + " digitos max).\" "; if (fila.IsNotNull) { atributos += " required=\"required\""; } atributos += " pattern=\"[0-9]{" + TamanoMinimo + "," + TamanoMaximo + "}\" "; fila.ControlAtributos = atributos; fila.ValorPorDefecto = "-1"; break; case "ntext": fila.TipoPrimitivo = "String"; fila.Control = "TextBox"; fila.ControlPrefijo = "txt"; fila.ControlPropiedadDato = "Text"; TamanoMinimo = fila.IsNotNull ? "1" : "0"; TamanoMaximo = fila.Tamano == -1 ? "50" : fila.Tamano.ToString(); atributos = " MaxLength=\"" + TamanoMaximo.ToString() + "\" " + " title=\"Ingrese el/la " + fila.NombreCampo + " (" + TamanoMaximo + " digitos max).\" "; if (fila.IsNotNull) { atributos += " required=\"required\""; } atributos += " pattern=\"[0-9]{" + TamanoMinimo + "," + TamanoMaximo + "}\" "; fila.ControlAtributos = atributos; fila.ValorPorDefecto = ""; break; case "text": fila.TipoPrimitivo = "String"; fila.Control = "TextBox"; fila.ControlPrefijo = "txt"; fila.ControlPropiedadDato = "Text"; TamanoMinimo = fila.IsNotNull ? "1" : "0"; TamanoMaximo = fila.Tamano == -1 ? "50" : fila.Tamano.ToString(); atributos = " MaxLength=\"" + TamanoMaximo.ToString() + "\" " + " title=\"Ingrese el/la " + fila.NombreCampo + " (" + TamanoMaximo + " digitos max).\" "; if (fila.IsNotNull) { atributos += " required=\"required\""; } atributos += " pattern=\"[0-9A-Za-z\\ñ\\Ñ]{" + TamanoMinimo + "," + TamanoMaximo + "}\" "; fila.ControlAtributos = atributos; fila.ValorPorDefecto = ""; break; case "char": fila.TipoPrimitivo = "String"; fila.Control = "TextBox"; fila.ControlPrefijo = "txt"; fila.ControlPropiedadDato = "Text"; TamanoMinimo = fila.IsNotNull ? "1" : "0"; TamanoMaximo = fila.Tamano == -1 ? "50" : fila.Tamano.ToString(); atributos = " MaxLength=\"" + TamanoMaximo.ToString() + "\" " + " title=\"Ingrese el/la " + fila.NombreCampo + " (" + TamanoMaximo + " digitos max).\" "; if (fila.IsNotNull) { atributos += " required=\"required\""; } atributos += " pattern=\"[0-9A-Za-z\\ñ\\Ñ]{" + TamanoMinimo + "," + TamanoMaximo + "}\" "; fila.ControlAtributos = atributos; fila.ValorPorDefecto = ""; break; case "nvarchar": fila.TipoPrimitivo = "String"; fila.Control = "TextBox"; fila.ControlPrefijo = "txt"; fila.ControlPropiedadDato = "Text"; TamanoMinimo = fila.IsNotNull ? "1" : "0"; TamanoMaximo = fila.Tamano == -1 ? "50" : fila.Tamano.ToString(); atributos = " MaxLength=\"" + TamanoMaximo.ToString() + "\" " + " title=\"Ingrese el/la " + fila.NombreCampo + " (" + TamanoMaximo + " digitos max).\" "; if (fila.IsNotNull) { atributos += " required=\"required\""; } atributos += " pattern=\"[0-9A-Za-z\\ñ\\Ñ]{" + TamanoMinimo + "," + TamanoMaximo + "}\" "; fila.ControlAtributos = atributos; fila.ValorPorDefecto = ""; break; case "nchar": fila.TipoPrimitivo = "String"; fila.Control = "TextBox"; fila.ControlPrefijo = "txt"; fila.ControlPropiedadDato = "Text"; TamanoMinimo = fila.IsNotNull ? "1" : "0"; TamanoMaximo = fila.Tamano == -1 ? "50" : fila.Tamano.ToString(); atributos = " MaxLength=\"" + TamanoMaximo.ToString() + "\" " + " title=\"Ingrese el/la " + fila.NombreCampo + " (" + TamanoMaximo + " digitos max).\" "; if (fila.IsNotNull) { atributos += " required=\"required\""; } atributos += " pattern=\"[0-9A-Za-z\\ñ\\Ñ]{" + TamanoMinimo + "," + TamanoMaximo + "}\" "; fila.ControlAtributos = atributos; fila.ValorPorDefecto = ""; break; case "varbinary": fila.TipoPrimitivo = "Int32"; fila.Control = "TextBox"; fila.ControlPrefijo = "txt"; fila.ControlPropiedadDato = "Text"; TamanoMinimo = fila.IsNotNull ? "1" : "0"; TamanoMaximo = fila.Tamano == -1 ? "50" : fila.Tamano.ToString(); atributos = " MaxLength=\"" + TamanoMaximo.ToString() + "\" " + " title=\"Ingrese el/la " + fila.NombreCampo + " (" + TamanoMaximo + " digitos max).\" "; if (fila.IsNotNull) { atributos += " required=\"required\""; } atributos += " pattern=\"[0-9A-Za-z\\ñ\\Ñ]{" + TamanoMinimo + "," + TamanoMaximo + "}\" "; fila.ControlAtributos = atributos; fila.ValorPorDefecto = ""; break; case "binary": fila.TipoPrimitivo = "Int32"; fila.Control = "TextBox"; fila.ControlPrefijo = "txt"; fila.ControlPropiedadDato = "Text"; TamanoMinimo = fila.IsNotNull ? "1" : "0"; TamanoMaximo = fila.Tamano == -1 ? "50" : fila.Tamano.ToString(); atributos = " MaxLength=\"" + TamanoMaximo.ToString() + "\" " + " title=\"Ingrese el/la " + fila.NombreCampo + " (" + TamanoMaximo + " digitos max).\" "; if (fila.IsNotNull) { atributos += " required=\"required\""; } atributos += " pattern=\"[0-9A-Za-z\\ñ\\Ñ]{" + TamanoMinimo + "," + TamanoMaximo + "}\" "; fila.ControlAtributos = atributos; fila.ValorPorDefecto = ""; break; case "xml": fila.TipoPrimitivo = "String"; fila.Control = "TextBox"; fila.ControlPrefijo = "txt"; fila.ControlPropiedadDato = "Text"; TamanoMinimo = fila.IsNotNull ? "1" : "0"; TamanoMaximo = fila.Tamano == -1 ? "50" : fila.Tamano.ToString(); atributos = " MaxLength=\"" + TamanoMaximo.ToString() + "\" " + " title=\"Ingrese el/la " + fila.NombreCampo + " (" + TamanoMaximo + " digitos max).\" "; if (fila.IsNotNull) { atributos += " required=\"required\""; } atributos += " pattern=\"[0-9A-Za-z\\ñ\\Ñ]{" + TamanoMinimo + "," + TamanoMaximo + "}\" "; fila.ControlAtributos = atributos; fila.ValorPorDefecto = ""; break; } if (fila.ClavePrimaria) { fila.ControlAtributos += " Visible=\"False\""; } }