コード例 #1
0
        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);
            }
        }
コード例 #2
0
 private void removeTxbDefValue(GroupBox gpbx, Column c)
 {
     if (gpbx != null)
     {
         gpbx.Controls.Remove(gpbx.Controls["txbDefValue" + c.OriginalColumnName]);
     }
 }
コード例 #3
0
 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);
     }
 }
コード例 #4
0
        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;
        }
コード例 #5
0
        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);
            }
        }
コード例 #6
0
        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);
        }