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); } }
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); } }