private void addSelectedCbxs(ref GroupBox gpbx, Column c) { if (gpbx != null) { String tableName = gpbx.Parent == null ? c.Reference.Key.Split('.')[0] : gpbx.Parent.Text; ComboBox cbxDataBases = new ComboBox(); cbxDataBases.Location = new Point(305, 53); cbxDataBases.Name = "cbxDataBases"; cbxDataBases.DrawMode = DrawMode.OwnerDrawFixed; cbxDataBases.DrawItem += onDrawnCbxItem; List<String> dataBases = getDataBasesNames(); foreach (String s in dataBases) cbxDataBases.Items.Add(s); if (c != null && c.Reference != null && c.Reference.Key != null) cbxDataBases.SelectedItem = c.Reference.Key.Split('.')[0]; cbxDataBases.SelectedValueChanged += onCbxValueChange; ComboBox cbxTables = new ComboBox(); cbxTables.DrawMode = DrawMode.OwnerDrawFixed; cbxTables.DrawItem += onDrawnCbxItem; cbxTables.Location = new Point(432, 53); cbxTables.Name = "cbxTables"; if (cbxDataBases.SelectedItem != null && !cbxDataBases.SelectedItem.ToString().Equals("")) { List<String> tables = getTablesListFromDB(cbxDataBases.SelectedItem.ToString()); foreach (String s in tables) cbxTables.Items.Add(s); if (cbxDataBases.SelectedItem.ToString().Equals(dbconfig.DbName)) foreach (String t in TablesList.TablesNames) if (!t.Equals(tableName)) cbxTables.Items.Add(t); if (c != null && c.Reference != null && c.Reference.Key != null) cbxTables.SelectedItem = c.Reference.Key.Split('.')[1]; } cbxTables.SelectedValueChanged += onCbxValueChange; ComboBox cbxFields = new ComboBox(); cbxFields.DrawMode = DrawMode.OwnerDrawFixed; cbxFields.DrawItem += onDrawnCbxItem; cbxFields.Location = new Point(559, 53); cbxFields.Name = "cbxFields"; if ((cbxDataBases.SelectedItem != null && !cbxDataBases.SelectedItem.ToString().Equals("")) && (cbxTables.SelectedItem != null && !cbxTables.SelectedItem.ToString().Equals(""))) { List<String> fields; bool isTableToCreate = false; Table tableSelected = null; TablesList.Tables.ForEach(t => { isTableToCreate = t.TableName.Equals(cbxTables.SelectedItem.ToString()); tableSelected = t; }); if (isTableToCreate) { tableSelected.Columns.ForEach(column => { cbxFields.Items.Add(column.ColumnName); }); } else { fields = getFieldListFromDBTable(cbxDataBases.SelectedItem.ToString(), cbxTables.SelectedItem.ToString()); foreach (String s in fields) cbxFields.Items.Add(s); } if (c != null && c.Reference != null && c.Reference.Key != null) cbxFields.SelectedItem = c.Reference.Value.ToString(); } cbxFields.SelectedValueChanged += onCbxValueChange; gpbx.Controls.Add(cbxDataBases); gpbx.Controls.Add(cbxTables); gpbx.Controls.Add(cbxFields); } }
private void removeTxbDefValue(GroupBox gpbx, Column c) { if (gpbx != null) { gpbx.Controls.Remove(gpbx.Controls["txbDefValue" + c.OriginalColumnName]); } }
private void addTxbDefValue(GroupBox gpbx, Column c) { if (gpbx != null) { TextBox txbDefValue = new TextBox(); txbDefValue.Name = "txbDefValue" + c.OriginalColumnName; txbDefValue.DataBindings.Add("Text", c, "defaulValue"); txbDefValue.Size = new System.Drawing.Size(100, 20); txbDefValue.Location = new Point(500, 17); gpbx.Controls.Add(txbDefValue); } }
public static List<Table> getTablesFromXMLFile(String filePath) { XElement xml = XElement.Load(getXMLReader(filePath)); Console.Out.Write(xml.Name); Table table = null; Row row = null; List<Table> tables = new List<Table>(); int count = 0; foreach(XElement x in xml.Elements()) { // if (count >= 4) //break; KeyValue value = null; row = null; if (x.Elements().Count() > 0) { foreach (XElement att in x.Elements()) { value = new KeyValue(); value.Key = att.Name.ToString(); value.Value = (String)att.Value.ToString(); row = classUtil.initializeIfNull(row); row.Values = classUtil.initializeIfNull(row.Values); row.Values.Add(value); Column column = new Column(value.Key); table = classUtil.initializeIfNull(table); table.Columns = classUtil.initializeIfNull(table.Columns); Boolean columnFound = false; for (int i = 0; i < table.Columns.Count; i++) { if (table.Columns[i].ColumnName.Equals(column.ColumnName)) columnFound = true; } if(!columnFound) table.Columns.Add(column); } } else { //value = new KeyValue(); //value.Key = x.Name.ToString(); //value.Value = (String)x.Value.ToString(); //row = classUtil.initializeIfNull(row); //row.Values = classUtil.initializeIfNull(row.Values); //row.Values.Add(value); } if (row != null) { table = classUtil.initializeIfNull(table); table.Rows = classUtil.initializeIfNull(table.Rows); table.Rows.Add(row); count++; } } if (table != null) { tables.Add(table); } return tables; }
public static void addNodeToTables(XElement element, ref List<Table> tables) { int index = getElementIndexInTables(element, tables); if (index < 0) //if table do not yet exist { tables.Add(new Table(element.Name.ToString())); index = tables.Count - 1; tables[index].Columns = new List<Column>(); String columnIDName = element.Name.ToString() + "ID"; Column columnID = new Column(columnIDName, true, false, true,null); tables[index].Columns.Add(columnID); if (index > 0)//if not root node and is a child node to the root with children nodes of its own && (element.Parent.Parent == null && !element.HasElements) { String parentName = element.Parent.Name.ToString(); String columnParentIDName = parentName + "ID"; KeyValue reference = new KeyValue(parentName, columnParentIDName); Column columnParentID = new Column(columnParentIDName, false, true, true,reference); tables[index].Columns.Add(columnParentID); } } foreach (XElement x in element.Elements()) { if(x.HasElements) addNodeToTables(x, ref tables); else addNodeToRootTable(x, ref tables, index); } }
public Template getTemplateFile(String templateFilePath) { this.templateFilePath = templateFilePath; List<String> file = openFile(this.templateFilePath); DBConfig dbConfig = new DBConfig(); TableList tablelist = new TableList(new List<Table>()); Table table = null; foreach (String s in file) { if (!s.Equals("")) { if ("//".Equals(s)) tablelist.Tables.Add(table); else { String key = s.Split('=')[0]; String value = s.Split('=')[1]; if ("Db".Equals(key)) dbConfig.Db = value; if ("Server".Equals(key)) dbConfig.Server = value; if ("Port".Equals(key)) dbConfig.Port = value; if ("User".Equals(key)) dbConfig.User = value; if ("Password".Equals(key)) dbConfig.Password = value; if("DbName".Equals(key)) dbConfig.DbName = value; if ("Table".Equals(key)) { table = new Table(); table.OriginalTableName = value.Split(':')[0]; table.TableName = value.Split(':')[1]; table.Columns = new List<Column>(); } if ("Column".Equals(key)) { String columnNames = value.Split(';')[0]; String sqlType = value.Split(';')[1]; String pk = value.Split(';')[2]; String fk = value.Split(';')[3]; String nullabe = value.Split(';')[4]; String unique = value.Split(';')[5]; String defValue = value.Split(';')[6]; String defValueOnError = value.Split(';')[7]; String referenceDB = value.Split(';')[8]; String referenceTableColum = value.Split(';')[9]; String skip = value.Split(';')[10]; Column column = new Column(columnNames.Split(':')[0]); column.ColumnName = columnNames.Split(':')[1] == null || columnNames.Split(':')[1].Equals("") ? column.ColumnName : columnNames.Split(':')[1]; column.sqlType = sqlType.Split(':')[1] == null || sqlType.Split(':')[1].Equals("") ? column.sqlType : sqlType.Split(':')[1]; column.IsPK = pk.Split(':')[1] != null && pk.Split(':')[1].ToLower().Equals("true"); column.IsFK = fk.Split(':')[1] != null && fk.Split(':')[1].ToLower().Equals("true"); column.IsNullable = nullabe.Split(':')[1] != null && nullabe.Split(':')[1].ToLower().Equals("true"); column.IsUnique = unique.Split(':')[1] != null && unique.Split(':')[1].ToLower().Equals("true"); column.defaulValue = defValue.Split(':')[1] != null ? defValue.Split(':')[1] : ""; column.defaulValueOnError = defValueOnError.Split(':')[1] != null ? defValueOnError.Split(':')[1] : ""; column.SKIP = skip.Split(':')[1] != null && skip.Split(':')[1].ToLower().Equals("true"); if (column.IsFK) column.Reference = new VO.KeyValue(referenceDB.Split(':')[1], referenceTableColum.Split(':')[1]); table.Columns.Add(column); } } } } return new Template(tablelist, dbConfig); }