示例#1
0
        private void _oktButton_Click(object sender, EventArgs e)
        {
            Data.ConnectionDetails connectionDetails = new Data.ConnectionDetails();
            connectionDetails.Server   = _serverNameTextbox.Text;
            connectionDetails.Database = _databaseTextbox.Text;
            if (_authenticationList.SelectedIndex == 0)
            {
                connectionDetails.AuthenticationStyle = ClickAndQuery.Data.AuthenticationStyle.Integrated;
            }
            else
            {
                connectionDetails.AuthenticationStyle = ClickAndQuery.Data.AuthenticationStyle.Server;
                connectionDetails.User = _usernameTextbox.Text;
                connectionDetails.Pwd  = _passwordTextbox.Text;
            }
            try
            {
                string [] sources           = { connectionDetails.Server, connectionDetails.User, connectionDetails.Pwd };
                bool      connectionHasTags = TaggedItems.Extract(TaggedItems.ExtractPolicy.CoalesceSameNameTags, sources).Count > 0;

                if (!connectionHasTags)
                {
                    connectionDetails.Connect().Dispose();                     // test connection.
                }

                //
                // Transfer details over to real data source object.
                _connectionDetails.Server              = connectionDetails.Server;
                _connectionDetails.Database            = connectionDetails.Database;
                _connectionDetails.AuthenticationStyle = connectionDetails.AuthenticationStyle;
                _connectionDetails.User = connectionDetails.User;
                _connectionDetails.Pwd  = connectionDetails.Pwd;

                DialogResult = DialogResult.OK;
                this.Close();
            }
            catch (Exception exception)
            {
                MessageBox.Show(exception.Message);
            }
        }
示例#2
0
        private void ExecuteQuery()
        {
            try
            {
                if (_document.Query.Length > 0)
                {
                    if (string.IsNullOrEmpty(_document.ConnectionDetails.Database))
                    {
                        if (
                            MessageBox.Show(this,
                                            "Connection needs to be opened first, ppen Connection to a database?", _originalCaption, MessageBoxButtons.OKCancel) == DialogResult.Cancel ||
                            !ShowConnectionDetailsForm())
                        {
                            return;
                        }
                    }
                    Data.ConnectionDetails cd = _document.ConnectionDetails.Clone();
                    List <string>          taggableSources = new List <string>(new string[] { cd.Server, cd.User, cd.Pwd });
                    bool connectionHasTags = TaggedItems.Extract(TaggedItems.ExtractPolicy.CoalesceSameNameTags, taggableSources.ToArray()).Count > 0;

                    if (!connectionHasTags)
                    {
                        taggableSources.Clear();
                    }
                    taggableSources.Add(_document.Query);
                    List <TaggedItems.Tag> tags = TaggedItems.Extract(TaggedItems.ExtractPolicy.CoalesceSameNameTags, taggableSources.ToArray());
                    if (FillTagValues(tags))
                    {
                        SqlConnection sqlConnection;
                        if (connectionHasTags)
                        {
                            if (_sqlConnection != null)
                            {
                                _sqlConnection.Dispose();
                                _sqlConnection = null;
                            }
                            cd.User       = TaggedItems.Replace(cd.User, tags);
                            cd.Server     = TaggedItems.Replace(cd.Server, tags);
                            cd.Pwd        = TaggedItems.Replace(cd.Pwd, tags);
                            sqlConnection = cd.Connect();
                        }
                        else
                        {
                            if (_sqlConnection == null)
                            {
                                _sqlConnection = _document.ConnectionDetails.Connect();
                            }
                            sqlConnection = _sqlConnection;
                        }

                        SqlCommand command = new SqlCommand(TaggedItems.Replace(_document.Query, tags), sqlConnection);

                        _resultsControl.ExecuteReader(command, connectionHasTags ? CommandBehavior.CloseConnection : CommandBehavior.Default);
                    }
                }
            }
            catch (Exception e)
            {
                MessageBox.Show(this, e.Message);
            }
        }