private string GenerarTabla(bool ejecutar) { Objetos.CDefinicionTabla tabla = new Objetos.CDefinicionTabla(); tabla.Nombre = TNombreTabla.Text.Trim(); //ahora agrego los campos DataTable campos = DSTabla.Tables["Campos"]; DataTable Fks = DSTabla.Tables["Relaciones"]; DataTable DetallesFK = DSTabla.Tables["RelacionDetalle"]; foreach (DataRow dr in campos.Rows) { Objetos.CDefinicionCampo obj = new Objetos.CDefinicionCampo(); obj.Nombre = dr["Nombre"].ToString(); obj.Tipo = dr["Tipo"].ToString(); if (dr["PK"].ToString().Trim() != "") { obj.ClavePrimaria = bool.Parse(dr["PK"].ToString()); } if (dr["Nulos"].ToString().Trim() != "") { obj.AceptaNulos = bool.Parse(dr["Nulos"].ToString()); } if (dr["AutoIncremental"].ToString().Trim() != "") { obj.AutoIncremental = bool.Parse(dr["AutoIncremental"].ToString()); } if (dr["Longitud"].ToString().Trim() != "") { obj.Longitud = int.Parse(dr["Longitud"].ToString()); } obj.ValorDefault = dr["ValorDeafult"].ToString(); obj.ValorCalculado = dr["ValorCalculado"].ToString(); if (dr["Unico"].ToString().Trim() != "") { obj.Unico = bool.Parse(dr["Unico"].ToString()); } tabla.Campos.Add(obj); if (obj.ClavePrimaria) { tabla.PrimaryKey.Add(obj); } } //ahora agrego las llaves foraneas foreach (DataRow fk in Fks.Rows) { Objetos.CDefinicionFK obj = new Objetos.CDefinicionFK(); obj.Nombre = fk["Nombre"].ToString(); obj.TablaPadre = fk["TablaPadre"].ToString(); obj.TablaHija = fk["TablaHija"].ToString(); //ahora agrego el detalle foreach (DataRow detalle in DetallesFK.Rows) { if (detalle["Nombre"].ToString() == obj.Nombre) { Objetos.CDefinicionDetalleFK obj2 = new Objetos.CDefinicionDetalleFK(); obj2.CampoPadre = detalle["ColumnaPadre"].ToString(); obj2.CampoHijo = detalle["ColumnaHija"].ToString(); obj.Campos.Add(obj2); } } tabla.LLavesForaneas.Add(obj); } //agrego los valores unicos DataTable unicos = DSTabla.Tables["CamposUnicos"]; foreach (DataRow dru in unicos.Rows) { tabla.Unicos.Add(dru["Campos"].ToString()); } return(DB.CreaTabla(tabla, ejecutar)); }