private void btnGenerate_Click(object sender, EventArgs e) { results = new List <RefferencedTable>(); String ValidationResult = CheckInput(); if (!String.IsNullOrWhiteSpace(ValidationResult)) { MessageBox.Show(ValidationResult, "Validation Errors", MessageBoxButtons.OK, MessageBoxIcon.Error); } else { PleaseWaitForm l = new PleaseWaitForm("Please Wait..."); l.StartPosition = FormStartPosition.CenterParent; l.Show(); l.Refresh(); RefferencedTable input = new RefferencedTable(); input.TableName = cbTables.SelectedItem.ToString(); input.ColumnName = cbColumns.SelectedItem.ToString(); input.SchemaName = cbDbSchemas.SelectedItem.ToString(); GetTables(input); results.Add(input); l.Close(); l.Dispose(); GenerateTextForConstraintsDisable(); GenerateTextForTablesUpdate(); GenerateTextForConstraintsEnable(); } }
private List <RefferencedTable> GetRefferencedTables(String TableName, String ColumnName) { List <RefferencedTable> result = new List <RefferencedTable>(); DbConnection conn = new SqlConnection(m_DBConnStr); conn.Open(); DbCommand cmd = conn.CreateCommand(); cmd.CommandText = "sp_GetAllReferencedTables"; cmd.CommandType = System.Data.CommandType.StoredProcedure; DbParameter par = cmd.CreateParameter(); par.ParameterName = "@TableName"; par.Value = TableName; par.DbType = System.Data.DbType.String; cmd.Parameters.Add(par); par = cmd.CreateParameter(); par.ParameterName = "@ColumnName"; par.Value = ColumnName; par.DbType = System.Data.DbType.String; cmd.Parameters.Add(par); DbDataReader rdr = null; RefferencedTable tmp; try { rdr = cmd.ExecuteReader(); while (rdr.Read()) { tmp = new RefferencedTable(); tmp.ParentTableName = (string)rdr["ParentTableName"]; tmp.TableName = (string)rdr["TableName"]; tmp.ColumnName = (string)rdr["ColName"]; tmp.SchemaName = (string)rdr["SchemaName"]; result.Add(tmp); } } catch (Exception ex) { WriteLog("GetRefferencedTables::", ex); } finally { if (rdr != null) { rdr.Close(); } conn.Close(); } return(result); }
private void GetTables(RefferencedTable Table) { if (!results.Exists(t => t.TableName == Table.TableName && t.ParentTableName == Table.ParentTableName && t.ColumnName == Table.ColumnName && t.IsProcessed == true)) { Table.IsProcessed = true; if (!String.IsNullOrEmpty(Table.ParentTableName)) //Da ne ja dodava pocetnata tabela dva pati { results.Add(Table); } List <RefferencedTable> tables = GetRefferencedTables(Table.TableName, Table.ColumnName); foreach (RefferencedTable table in tables) { if (!results.Exists(t => t.TableName == Table.TableName && t.ParentTableName == Table.ParentTableName && t.ColumnName == Table.ColumnName && t.IsProcessed == false)) { GetTables(table); } } } }