public void ModifyConnection()
        {
            IConnection Oldconnection = this.pConnection;
            bool        error         = false;

            try
            {
                IConnection connection = null;

                connection = AbstractSharpQueryConnectionWrapper.UpDateFromDataConnectionLink(this.Connection);

                if (connection != null)
                {
                    this.Disconnect();
                    this.pConnection = connection;
                    this.Refresh();
                    error = this.pConnection.IsConnectionStringWrong;
                }
            }
            catch (ConnectionStringException e)
            {
                error = true;
                MessageService.ShowError(e.Message);
            }
            finally
            {
                if (error == true)
                {
                    this.pConnection = Oldconnection;
                    this.Connect();
                    this.Refresh();
                }
            }
        }
        public override void BuildsChilds()
        {
            IConnection     connection = null;
            ISharpQueryNode node       = null;

            try
            {
                connection = AbstractSharpQueryConnectionWrapper.CreateFromDataConnectionLink();

                if (connection != null)
                {
                    string ChildClass = "";

                    if (SharpQueryTree.SchemaClassDict.ContainsKey(connection.GetType().FullName) == true)
                    {
                        ChildClass = SharpQueryTree.SchemaClassDict[connection.GetType().FullName];
                    }

                    if ((ChildClass != null) && (ChildClass != ""))
                    {
                        node = (ISharpQueryNode)ass.CreateInstance(ChildClass, false, BindingFlags.CreateInstance, null, new object[] { connection }, null, null);
                    }
                    else
                    {
                        node = new SharpQueryNodeNotSupported(new SharpQueryNotSupported(connection, "", "", "", connection.GetType().FullName));
                    }


                    //TODO : do an interface for the node connection!
                    (node as SharpQueryNodeConnection).Connect();
                    this.Nodes.Add(node as TreeNode);
                    node.Refresh();

                    if (node.Connection.IsConnectionStringWrong == true)
                    {
                        this.Nodes.Remove(node as TreeNode);
                    }
                    else
                    {
                        this.Expand();
                    }
                }
            }
            catch (ConnectionStringException e)
            {
                if (this.Nodes.Contains(node as TreeNode) == true)
                {
                    this.Nodes.Remove(node as TreeNode);
                }
                MessageService.ShowError(e.Message);
            }
        }