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); }
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; }
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); }
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); } }