public ReaderContext(NpgsqlDataReader reader, ConnectionData connData) { this.Reader = reader; this.ConnectData = connData; }
public ReaderContext ExecuteReaderToDataGridView(ConnectionData connData, string sqlQuery) { if (FlagColumns) { /*Создаём название колонки для таблицы*/ DataGridViewTextBoxColumn column1 = new DataGridViewTextBoxColumn(); column1.Name = "server"; column1.HeaderText = "Сервер"; column1.AutoSizeMode = DataGridViewAutoSizeColumnMode.Fill; DataGridViewTextBoxColumn column2 = new DataGridViewTextBoxColumn(); column2.Name = "countStrings"; column2.HeaderText = "Количество строк"; column2.Width = 200; dgvResults.Columns.AddRange(column1, column2); FlagColumns = false; } NpgsqlConnection connection = null; NpgsqlDataReader reader = null; ReaderContext ridearContext = new ReaderContext(reader, connData); try { connection = new NpgsqlConnection(connData.ConnectionString); connection.Open(); if (connection.State == ConnectionState.Open) { NpgsqlCommand command = new NpgsqlCommand(sqlQuery, connection); reader = command.ExecuteReader(); if (reader.HasRows) // Если в результатах запроса есть строки { ridearContext.Reader = reader; //Формируем строку int countRows = 0; while (reader.Read()) { countRows++; } //Закрываем соединение connection.Close(); //Создаём информационную строку DataGridViewRow rowInfo = new DataGridViewRow(); rowInfo.DefaultCellStyle.BackColor = Color.Aqua; //Создаём информационные ячейки о сервере DataGridViewCell cellInfo1 = new DataGridViewTextBoxCell(); //cellInfo. cellInfo1.Value = connData.ServerName; //Создаём информационные ячейки о сервере DataGridViewCell cellInfo2 = new DataGridViewTextBoxCell(); //cellInfo. cellInfo2.Value = countRows; //Добавляем ячейку в строку rowInfo.Cells.AddRange(cellInfo1, cellInfo2); //Добавляем строку в таблицу dgvResults.Rows.Add(rowInfo); return(ridearContext); } return(ridearContext); } return(ridearContext); } catch (Exception ex) { MessageBox.Show(ex.Message); return(ridearContext); } finally { if (connection != null) { //выполнено отключение connection.Close(); } } }
private void btnRun_Click(object sender, EventArgs e) { if (rtbQuery.Text == "") { MessageBox.Show("Вы не ввели запрос!"); } else if (dgvServers.Rows.Count < 1) { MessageBox.Show("Вы не добавили ни одного сервера!"); } else { //Показываем и Устанавливаем статусбар в нулевое значение pbExequteQuery.Visible = true; pbExequteQuery.Value = 0; //Отображает сообщение lbMessage.Visible = false; lbMessage.Text = ""; //Считаем количество выделенных серверов int countSelServers = 0; //Счётчик опрошенных серверов int countServers = 1; foreach (DataGridViewRow row in dgvServers.Rows) { //Если сервер отмечен галочкой if (row.Cells[0].Value.ToString() == "True") { countSelServers++; } } FlagColumns = true; dgvResults.Columns.Clear(); dgvResults.Rows.Clear(); foreach (DataGridViewRow row in dgvServers.Rows) { //Получаем запрос из формы string sqlQuery = rtbQuery.Text; //Если сервер отмечен галочкой if (row.Cells[0].Value.ToString() == "True") { string servName = row.Cells[2].Value.ToString(); //Название сервера string adressIP = row.Cells[3].Value.ToString(); //Адрес IP string port = row.Cells[4].Value.ToString(); //Порт string database = row.Cells[5].Value.ToString(); //База данных string user = row.Cells[6].Value.ToString(); //Пользователь string timeout = row.Cells[7].Value.ToString(); //Таймаут string passw = row.Cells[8].Value.ToString(); //Пароль //Создаём объект соединения ConnectionData cd = new ConnectionData(servName, adressIP, port, database, user, passw, timeout); //Выводим результат выполнения запроса в форму ReaderContext rc = ExecuteReaderToDataGridView(cd, sqlQuery); ListReaderContext.Add(rc); //Устанавливаем прогресс статусбара pbExequteQuery.Value += 100 / countSelServers; lbMessage.Visible = true; lbMessage.Text = String.Format("Выполнен запрос на {0} сервере из {1}", countServers, countSelServers); countServers++; } } } }
private void btnAdd_Click(object sender, EventArgs e) { ServerForm sf = new ServerForm(); if (sf.ShowDialog() == DialogResult.OK) { // Формируем строку для таблицы серверов DataGridView DataGridViewRow row = new DataGridViewRow(); /*Создаём ячейки для строки*/ // Ячейка Выбрать DataGridViewCell cell0 = new DataGridViewCheckBoxCell(); //Ячейка Состояние DataGridViewCell cell1 = new DataGridViewImageCell(); //Ячейка Название DataGridViewCell cell2 = new DataGridViewTextBoxCell(); //Ячейка Адрес IP DataGridViewCell cell3 = new DataGridViewTextBoxCell(); //Ячейка База данных DataGridViewCell cell4 = new DataGridViewTextBoxCell(); //Ячейка Порт DataGridViewCell cell5 = new DataGridViewTextBoxCell(); //Ячейка Пользователь DataGridViewCell cell6 = new DataGridViewTextBoxCell(); //Ячейка Таймаут DataGridViewCell cell7 = new DataGridViewTextBoxCell(); //Ячейка Пароль DataGridViewCell cell8 = new DataGridViewTextBoxCell(); // Добавляем в строку ячейки row.Cells.AddRange(cell0, cell1, cell2, cell3, cell4, cell5, cell6, cell7, cell8); /*Присваиваем ячейкам значения*/ // Выбрать cell0.Value = true; /*Состояние подключения*/ // Выполняем проверку доступности сервера для подключения и выводим иконку статуса доступности //Создаём объект подключения ConnectionData cd = new ConnectionData(sf.NameServer, sf.AdressIP, sf.Port, sf.DB_Name, sf.User, sf.Pass, sf.Timeout); VerifyConnection(cd, row); // Название cell2.Value = sf.NameServer; // Адрес IP cell3.Value = sf.AdressIP; // Порт cell4.Value = sf.Port; //База данных cell5.Value = sf.DB_Name; //Пользователь cell6.Value = sf.User; // Таймаут cell7.Value = sf.Timeout; // Пароль cell8.Value = sf.Pass; // Добавляем строку в DataGridView dgvServers.Rows.Add(row); try { //Формируем строку для записи в файл StringForWrite sfw = new StringForWrite(row.Index.ToString(), cell0.Value.ToString(), sf.NameServer, sf.AdressIP, sf.Port, sf.User, sf.Pass, sf.DB_Name, sf.Timeout); string str = sfw.StrWrite; //Создаём объект директории в файловой системе где хранится файл параметров серверов DirectoryInfo di = new DirectoryInfo("files"); //Если директории нет, то создаём её if (di.Exists == false) { di.Create(); } //Создаём файл в директории string path = di.FullName + "/servers.txt"; FileInfo fi = new FileInfo(path); //Если файл не существует, то создаём его if (fi.Exists == false) { //Записываем в файл StreamWriter sw = fi.CreateText(); //Createtext создаёт новый файл и записывает в него техт sw.WriteLine(str); sw.Close(); } else { StreamWriter sw = fi.AppendText(); //AppendText добавляет данные в конец существующего файла sw.WriteLine(str); sw.Close(); } } catch (Exception ex) { MessageBox.Show(ex.Message); } } }
private void btnEdit_Click(object sender, EventArgs e) { //Загружаем форму для редактирования ServerForm sf = new ServerForm(); sf.NameServer = dgvServers.CurrentRow.Cells[2].Value.ToString(); sf.AdressIP = dgvServers.CurrentRow.Cells[3].Value.ToString(); sf.Port = dgvServers.CurrentRow.Cells[4].Value.ToString(); sf.DB_Name = dgvServers.CurrentRow.Cells[5].Value.ToString(); sf.User = dgvServers.CurrentRow.Cells[6].Value.ToString(); sf.Timeout = dgvServers.CurrentRow.Cells[7].Value.ToString(); sf.Pass = dgvServers.CurrentRow.Cells[8].Value.ToString(); if (sf.ShowDialog() == DialogResult.OK) { dgvServers.CurrentRow.Cells[2].Value = sf.NameServer; dgvServers.CurrentRow.Cells[3].Value = sf.AdressIP; dgvServers.CurrentRow.Cells[4].Value = sf.Port; dgvServers.CurrentRow.Cells[5].Value = sf.DB_Name; dgvServers.CurrentRow.Cells[6].Value = sf.User; dgvServers.CurrentRow.Cells[7].Value = sf.Timeout; dgvServers.CurrentRow.Cells[8].Value = sf.Pass; //Создаём объект директории в файловой системе где хранится файл параметров серверов DirectoryInfo di = new DirectoryInfo("files"); //Если директории нет, то создаём её if (di.Exists == false) { di.Create(); } //Создаём файл в директории string path = di.FullName + "/servers.txt"; FileInfo fi = new FileInfo(path); //Записываем в файл StreamWriter sw = fi.CreateText(); //Createtext создаёт новый файл и записывает в него техт foreach (DataGridViewRow row in dgvServers.Rows) { //Формируем строку для записи в файл string index = row.Index.ToString(); string selServer = row.Cells[0].Value.ToString(); string serverName = row.Cells[2].Value.ToString(); string adresIP = row.Cells[3].Value.ToString(); string port = row.Cells[4].Value.ToString(); string database = row.Cells[5].Value.ToString(); string user = row.Cells[6].Value.ToString(); string timeout = row.Cells[7].Value.ToString(); string passw = row.Cells[8].Value.ToString(); StringForWrite sfw = new StringForWrite(index, selServer, serverName, adresIP, port, user, passw, database, timeout); string str = sfw.SelServer; sw.WriteLine(str); // Выполняем проверку доступности сервера для подключения и выводим иконку статуса доступности ConnectionData cd = new ConnectionData(serverName, adresIP, port, database, user, passw, timeout); VerifyConnection(cd, row); } sw.Close(); } }
private void MainForm_Load(object sender, EventArgs e) { /* Заполняем таблицу Серверы */ //Создаём объект директории для чтения DirectoryInfo di = new DirectoryInfo("files"); //Если директория есть,то проверяем есть ли в ней файл if (di.Exists) { //Создаём путь к файлу в директории string path = di.FullName + "/servers.txt"; //Создаём объект файла для чтения FileInfo fi = new FileInfo(path); //Если файл существует, то читаем его содержимое if (fi.Exists) { StreamReader sr = new StreamReader(fi.FullName); string str; while ((str = sr.ReadLine()) != null) { //Разбиваем считанную строку на элементы string[] columns = str.Split(';'); string index = columns[0]; string selected = columns[1]; string serverName = columns[2]; string adresIP = columns[3]; string port = columns[4]; string user = columns[5]; string passw = columns[6]; string database = columns[7]; string timeout = columns[8]; // Формируем строку для таблицы серверов DataGridView DataGridViewRow row = new DataGridViewRow(); // Создаём ячейки для строки // Ячейка Выбрать DataGridViewCell cell0 = new DataGridViewCheckBoxCell(); //Ячейка Состояние DataGridViewCell cell1 = new DataGridViewImageCell(); //Ячейка Название Сервера DataGridViewCell cell2 = new DataGridViewTextBoxCell(); //Ячейка Адрес IP DataGridViewCell cell3 = new DataGridViewTextBoxCell(); //Ячейка Порт DataGridViewCell cell4 = new DataGridViewTextBoxCell(); //Ячейка База Данных DataGridViewCell cell5 = new DataGridViewTextBoxCell(); //Ячейка Пользователь DataGridViewCell cell6 = new DataGridViewTextBoxCell(); //Ячейка Таймаут DataGridViewCell cell7 = new DataGridViewTextBoxCell(); //Ячейка Пароль DataGridViewCell cell8 = new DataGridViewTextBoxCell(); // Добавляем в строку ячейки row.Cells.AddRange(cell0, cell1, cell2, cell3, cell4, cell5, cell6, cell7, cell8); /* Присваиваем ячейкам значения */ // Выбрать if (selected == "True") { cell0.Value = true; } else { cell0.Value = false; } // Проверяем СОСТОЯНИЕ подключения //Создаём объект для подключения ConnectionData cd = new ConnectionData(serverName, adresIP, port, database, user, passw, timeout); VerifyConnection(cd, row); // Название cell2.Value = serverName; // Адрес IP cell3.Value = adresIP; // Порт cell4.Value = port; //База Данных cell5.Value = database; //Пользователь cell6.Value = user; // Таймаут cell7.Value = timeout; // Пароль cell8.Value = passw; // Добавляем строку в DataGridView dgvServers.Rows.Add(row); } sr.Close(); } } }