コード例 #1
0
        private void LoadData()
        {
            TableBLL tableBLL = new TableBLL();

            this.ListOrderedTables   = tableBLL.ListOrderedTables();
            this.ListAvailableTables = tableBLL.ListAvailableTables();

            foreach (DAL.Table table in this.Tables)
            {
                TableControl tableControl = new TableControl(table, false);
                tableControl.MouseDown += new MouseEventHandler(this.tableControl1_MouseDown);
                this.flowLayoutPanel1.Controls.Add(tableControl);
            }

            foreach (DAL.Table table in this.ListAvailableTables)
            {
                TableControl tableControl = new TableControl(table, false);
                tableControl.MouseDown += new MouseEventHandler(this.tableControl1_MouseDown);
                this.flowLayoutPanel2.Controls.Add(tableControl);
            }

            foreach (DAL.Table table in this.ListOrderedTables)
            {
                DAL.Table tt = this.Tables.Find(t => t.ID == table.ID);
                if (tt != null)
                {
                    continue;
                }

                TableControl tableControl = new TableControl(table, false);
                tableControl.MouseDown += new MouseEventHandler(this.tableControl1_MouseDown);
                this.flowLayoutPanel3.Controls.Add(tableControl);
            }
        }
コード例 #2
0
        private void flowLayoutPanel1_DragDrop(object sender, DragEventArgs e)
        {
            DAL.Table data = (DAL.Table)e.Data.GetData(DataFormats.Serializable);

            // check exist in layout 1
            var find = this.Tables.Find(t => t.ID == data.ID);

            if (find != null)
            {
                return;
            }

            this.Tables.Add(data);

            // remove from layout 2
            List <TableControl> controls = this.flowLayoutPanel2.Controls.OfType <TableControl>().ToList();

            for (int i = 0; i < controls.Count; i++)
            {
                if (controls[i].Table.ID == data.ID)
                {
                    this.flowLayoutPanel2.Controls.RemoveAt(i);
                    break;
                }
            }

            // remove from layout 3
            controls = this.flowLayoutPanel3.Controls.OfType <TableControl>().ToList();
            for (int i = 0; i < controls.Count; i++)
            {
                if (controls[i].Table.ID == data.ID)
                {
                    this.flowLayoutPanel3.Controls.RemoveAt(i);
                    break;
                }
            }

            // add to layout 1
            TableControl tableControl = new TableControl(data, false);

            tableControl.MouseDown += new MouseEventHandler(this.tableControl1_MouseDown);
            this.flowLayoutPanel1.Controls.Add(tableControl);
        }
コード例 #3
0
        private void DisplayLastSelectedObject()
        {
            LastSelectedDatabase = Global.Snapshot.Servers.SelectMany(c => c.Databases).SingleOrDefault(c => c.DatabaseServerId == LastSelectedObject.DatabaseServerId);
            LastSelectedServer = Global.Snapshot.Servers.SingleOrDefault(c => c.Id == LastSelectedDatabase.ServerId);

            var relatedObjects = GetRelatedObjects(LastSelectedObject.Object, LastSelectedDatabase);

            int newTabIndex = 0;

            if (LastSelectedObject.Object is DAL.Table)
            {
                LastSelectedTable = LastSelectedObject.Object as DAL.Table;

                var code = new StringBuilder();

                code.AppendFormat("use {0}" + System.Environment.NewLine, LastSelectedObject.Database);
                code.AppendLine("go");
                code.AppendFormat("create table [{0}].[{1}] (" + System.Environment.NewLine, LastSelectedTable.Schema, LastSelectedTable.Name);
                code.Append(string.Join("," + System.Environment.NewLine, LastSelectedTable.Columns.Select(c => c.ToSQL())));
                code.AppendLine(System.Environment.NewLine + ")" + System.Environment.NewLine + "go");

                txtTable1.Text = code.ToString();

                btnSelect_Click(null, null);

                tableRelatedObjects.Clear();

                foreach (var item in relatedObjects.ObjectsThatThisDependsOn.Select(c => new DatabaseObjectWithParents(c))) tableRelatedObjects.Add(item);
                foreach (var item in relatedObjects.ObjectsDependingOnThis.Select(c => new DatabaseObjectWithParents(c))) tableRelatedObjects.Add(item);

                newTabIndex = 0;
            }

            if (LastSelectedObject.Object is DAL.StoredProcedure)
            {
                LastSelectedStoredProcedure = LastSelectedObject.Object as DAL.StoredProcedure;

                txtStoredProcedure1.Text = new SqlServerCore().GenerateCodeForStoredProcedure(LastSelectedStoredProcedure, LastSelectedObject.Database);

                storedProceduresRelatedObjects.Clear();
                foreach (var item in relatedObjects.ObjectsThatThisDependsOn.Select(c => new DatabaseObjectWithParents(c))) storedProceduresRelatedObjects.Add(item);
                foreach (var item in relatedObjects.ObjectsDependingOnThis.Select(c => new DatabaseObjectWithParents(c))) storedProceduresRelatedObjects.Add(item);

                txtStoredProcedure2.Text = new SqlServerCore().GenerateCSharpCodeForSP(LastSelectedStoredProcedure);

                newTabIndex = 1;
            }

            if (LastSelectedObject.Object is DAL.View)
            {
                LastSelectedView = LastSelectedObject.Object as DAL.View;

                txtView1.Text = LastSelectedView.Text;

                viewRelatedObjects.Clear();
                foreach (var item in relatedObjects.ObjectsThatThisDependsOn.Select(c => new DatabaseObjectWithParents(c))) viewRelatedObjects.Add(item);
                foreach (var item in relatedObjects.ObjectsDependingOnThis.Select(c => new DatabaseObjectWithParents(c))) viewRelatedObjects.Add(item);

                txtView2.Text = new SqlServerCore().GenerateSP_Select(LastSelectedView, LastSelectedObject.Database);

                newTabIndex = 2;
            }

            if (databaseTabs.SelectedIndex != newTabIndex)
            {
                // has to changed this way, as a double click inside a tab prevents the tab from being changed by just calling .SelectedIndex normally
                Application.Current.Dispatcher.BeginInvoke((Action)delegate
                {
                    databaseTabs.SelectedIndex = newTabIndex;
                }, DispatcherPriority.Render, null);
            }
        }
コード例 #4
0
 public void Delete(Model.Table table)
 {
     DAL.Table dalTable = new DAL.Table();
     dalTable.Delete(table);
 }
コード例 #5
0
 public void Update(Model.Table table)
 {
     DAL.Table dalTable = new DAL.Table();
     dalTable.Update(table);
 }
コード例 #6
0
 public void Insert(Model.Table table)
 {
     DAL.Table dalTable = new DAL.Table();
     dalTable.Insert(table);
 }
コード例 #7
0
 public List <Model.Table> Select()
 {
     DAL.Table dalTable = new DAL.Table();
     return(dalTable.Select());
 }