コード例 #1
0
        private void tvTablesColumns_ExpandTable(TreeNode tNode)
        {
            if (tNode.Parent == null)   // Check for Tables or Views
            {
                return;
            }

            if (tNode.FirstNode.Text != "")     // Have we already filled it out?
            {
                return;
            }

            // Need to obtain the column information for the requested table/view
            // suppress redraw until tree view is complete
            tvTablesColumns.BeginUpdate();

            string           sql        = "SELECT * FROM " + DesignerUtility.NormalizeSqlName(tNode.Text);
            List <SqlColumn> tColumns   = DesignerUtility.GetSqlColumns(_Draw, _DataSource, sql);
            bool             bFirstTime = true;

            foreach (SqlColumn sc in tColumns)
            {
                if (bFirstTime)
                {
                    bFirstTime           = false;
                    tNode.FirstNode.Text = sc.Name;
                }
                else
                {
                    tNode.Nodes.Add(sc.Name);
                }
            }

            tvTablesColumns.EndUpdate();
        }
コード例 #2
0
        private void tvTablesColumns_MouseDown(object sender, System.Windows.Forms.MouseEventArgs e)
        {
            TreeNode node = tvTablesColumns.GetNodeAt(e.X, e.Y);

            if (node == null || node.Parent == null)
            {
                return;
            }

            string dragText;

            if (tbSQL.Text == "")
            {
                if (node.Parent.Parent == null)
                {                                      // select table; generate full select for table
                    tvTablesColumns_ExpandTable(node); // make sure we've obtained the columns

                    dragText = "SELECT ";
                    TreeNode next = node.FirstNode;
                    while (true)
                    {
                        dragText += DesignerUtility.NormalizeSqlName(next.Text);
                        next      = next.NextNode;
                        if (next == null)
                        {
                            break;
                        }
                        dragText += ", ";
                    }
                    dragText += (" FROM " + DesignerUtility.NormalizeSqlName(node.Text));
                }
                else
                {       // select column; generate select of that column
                    dragText = "SELECT " + DesignerUtility.NormalizeSqlName(node.Text) + " FROM " + DesignerUtility.NormalizeSqlName(node.Parent.Text);
                }
            }
            else
            {
                dragText = node.Text;
            }

            tvTablesColumns.DoDragDrop(dragText, DragDropEffects.Copy);
        }
コード例 #3
0
        private void bMove_Click(object sender, System.EventArgs e)
        {
            if (tvTablesColumns.SelectedNode == null ||
                tvTablesColumns.SelectedNode.Parent == null)
            {
                return;         // this is the Tables/Views node
            }
            TreeNode node = tvTablesColumns.SelectedNode;
            string   t    = node.Text;

            if (tbSQL.Text == "")
            {
                if (node.Parent.Parent == null)
                {                                      // select table; generate full select for table
                    tvTablesColumns_ExpandTable(node); // make sure we've obtained the columns

                    StringBuilder sb   = new StringBuilder("SELECT ");
                    TreeNode      next = node.FirstNode;
                    while (true)
                    {
                        sb.Append(DesignerUtility.NormalizeSqlName(next.Text));
                        next = next.NextNode;
                        if (next == null)
                        {
                            break;
                        }
                        sb.Append(", ");
                    }
                    sb.Append(" FROM ");
                    sb.Append(DesignerUtility.NormalizeSqlName(node.Text));
                    t = sb.ToString();
                }
                else
                {       // select column; generate select of that column
                    t = "SELECT " + DesignerUtility.NormalizeSqlName(node.Text) + " FROM " + DesignerUtility.NormalizeSqlName(node.Parent.Text);
                }
            }

            tbSQL.SelectedText = t;
        }