예제 #1
0
    public ForeignKeyDialog(TableNode node)
    {
      tableNode = node;
      Application.EnableVisualStyles();
      InitializeComponent();

      // create a list of all tables in this database
      DataTable dt = tableNode.GetDataTable(
        String.Format(@"SELECT TABLE_NAME FROM INFORMATION_SCHEMA.TABLES 
          WHERE TABLE_SCHEMA = '{0}' AND ENGINE = 'InnoDB'", tableNode.Database));
      List<string> tables = new List<string>();
      foreach (DataRow row in dt.Rows)
        tables.Add(row[0].ToString());
      refTable.DataSource = tables;

      colGridColumn.HeaderText = tableNode.Table.Name;
      colGridColumn.Items.Add(None);
      foreach (Column c in tableNode.Table.Columns)
      {
        if (c.ColumnName == null) continue;
        columnNames.Add(c.ColumnName);
        colGridColumn.Items.Add(c.ColumnName);
      }
     
      foreignKeyBindingSource.DataSource = tableNode.Table.ForeignKeys;
      fkList.DataSource = foreignKeyBindingSource;
      if (!InEditMode) ShowEditControls(false);
    }
예제 #2
0
        public ForeignKeyDialog(TableNode node)
        {
            tableNode = node;
            Application.EnableVisualStyles();
            InitializeComponent();

            // create a list of all tables in this database
            DataTable dt = tableNode.GetDataTable(
                String.Format(@"SELECT TABLE_NAME FROM INFORMATION_SCHEMA.TABLES 
                  WHERE TABLE_SCHEMA = '{0}' AND TABLE_NAME <> '{1}'",
                              tableNode.Database, tableNode.Table.Name));
            List <string> tables = new List <string>();

            foreach (DataRow row in dt.Rows)
            {
                tables.Add(row[0].ToString());
            }
            refTable.DataSource = tables;

            colGridColumn.HeaderText = tableNode.Table.Name;
            colGridColumn.Items.Add(None);
            foreach (Column c in tableNode.Table.Columns)
            {
                if (c.ColumnName == null)
                {
                    continue;
                }
                columnNames.Add(c.ColumnName);
                colGridColumn.Items.Add(c.ColumnName);
            }

            foreignKeyBindingSource.DataSource = tableNode.Table.ForeignKeys;
            fkList.DataSource = foreignKeyBindingSource;
        }
예제 #3
0
        public List <string> GetColumnNames()
        {
            string        sql  = @"SELECT column_name FROM INFORMATION_SCHEMA.COLUMNS WHERE 
                TABLE_SCHEMA='{0}' AND TABLE_NAME='{1}'";
            DataTable     dt   = _owningNode.GetDataTable(string.Format(sql, _owningNode.Database, Name));
            List <string> cols = new List <string>();

            foreach (DataRow row in dt.Rows)
            {
                cols.Add(row[0].ToString());
            }
            return(cols);
        }
예제 #4
0
        private void refTable_SelectedIndexChanged(object sender, EventArgs e)
        {
            string refTableName = refTable.Items[refTable.SelectedIndex].ToString();

            fkGridColumn.HeaderText = refTableName;

            //reset the items list for the fk column
            string    sql = @"SELECT column_name FROM INFORMATION_SCHEMA.COLUMNS WHERE 
                TABLE_SCHEMA='{0}' AND TABLE_NAME='{1}'";
            DataTable dt  = tableNode.GetDataTable(String.Format(sql, tableNode.Database, refTableName));

            fkColumnNames.Clear();
            foreach (DataRow row in dt.Rows)
            {
                fkColumnNames.Add(row[0].ToString());
            }

            fkGridColumn.Items.Clear();
            fkGridColumn.Items.Add(None);
            foreach (string col in fkColumnNames)
            {
                fkGridColumn.Items.Add(col);
            }

            if (foreignKeyBindingSource.Current == null)
            {
                return;
            }

            // update the key name if it is not already finalized
            ForeignKey key = foreignKeyBindingSource.Current as ForeignKey;

            if (key.IsNew && !key.NameSet)
            {
                string name = String.Format("FK_{0}_{1}", tableNode.Table.Name, refTableName);
                key.SetName(name, true);
            }
        }