Кнопка формы окна C # для выполнения SQL-запроса

Я новичок в программировании, так что терпите меня, пока я учусь. Я много дней искал способ заставить эту работу работать, пробуя различные решения, которые я нашел здесь и на других сайтах. Я использую пользовательский ввод для создания строки подключения, и кнопка 1 отлично работает, чтобы убедиться, что соединение установлено, кнопка 2 — не очень. Я пытаюсь создать кнопку, которая после нажатия будет выполнять команду SQL и предоставлять результаты этой команды.

Это то, что у меня есть, кнопка 2, которую я не смог приступить к работе.

  с использованием Microsoft.AspNet.SignalR.Infrastructure; с использованием Microsoft.SqlServer.Server; с использованием System; с использованием System.Collections.Generic; с использованием System.ComponentModel;  использование System.Data; использование System.Data.SqlClient; использование System.Diagnostics; использование System.Drawing; использование System.Linq; использование System.Text; использование System.Threading.Tasks; использование System.Windows.Forms; пространство имен WindowsFormsApp4 {public  частичный класс Form1: Форма {общедоступная Form1 () {InitializeComponent ();  } private void Form1_Load (object sender, EventArgs e) {} private void textBox1_TextChanged (объект-отправитель, EventArgs e) {} private void textBox2_TextChanged (отправитель объекта, EventArgs e) {} private void textBox3_TextChanged (отправитель объекта) {объект-отправитель  void textBox4_TextChanged (отправитель объекта, EventArgs e) {} private void textBox5_TextChanged (отправитель объекта, EventArgs e) {} private void button1_Click (отправитель объекта, EventArgs e) {{string ServerName = textBox1.Text;  строка Database = textBox2.Text;  строка Имя пользователя = textBox3.Text;  строка Pass = textBox4.Text;  строка connetionString;  SqlConnection cnn;  ConnetionString = @ "Data Source =" + ServerName + "; Начальный каталог =" + Database + "; User ID =" + Username + "; Password =" + Pass + ";";  cnn = новый SqlConnection (connetionString);  попробуйте {cnn.Open ();  MessageBox.Show («Соединение открыто!»);  cnn.Close ();  } catch (Exception) {MessageBox.Show («Ошибка входа, неверная информация»);  }}} private void button2_Click (отправитель объекта, EventArgs e) {строка ServerName = textBox1.Text;  строка Database = textBox2.Text;  строка Имя пользователя = textBox3.Text;  строка Pass = textBox4.Text;  строка results = textBox5.Text;  строка connetionString;  SqlConnection cnn;  ConnetionString = @ "Data Source =" + ServerName + "; Начальный каталог =" + Database + "; User ID =" + Username + "; Password =" + Pass + ";";  строка userInput = "";  var process = new Process ();  var startInfo = новый ProcessStartInfo ();  startInfo.WindowStyle = ProcessWindowStyle.Hidden;  startInfo.FileName = "cmd.exe";  startInfo.Arguments = string.Format (@ "Data Source =" + ServerName + "; Initial Catalog =" + Database + "; User ID =" + Username + "; Password =" + Pass + ";" "SELECT count (  *) из истории участников, SELECT count (*) из постранзакции, где передано = 0, userInput); процесс. StartInfo = startInfo;  process.Start ();  }}}  

Я пытаюсь получить кнопку для запуска этого sql:

  select count (*) from historyselect count  (*) из результатов, где указано = 0  

Я могу без проблем запустить SQL-запрос в SSMS, просто заставить его запускаться из создаваемого мной графического интерфейса.

Любая помощь приветствуется.


Я хотел сказать, что ценю всю помощь и терпение от всех здесь, я смог решить эту проблему другая доска и хотел поделиться результатами, чтобы кому-то еще нужна помощь с ней.

  using System; using System.Collections.Generic; using System.ComponentModel; using System.Data;  использование System.Data.SqlClient; использование System.Drawing; использование System.Linq; использование System.Text; использование System.Threading.Tasks; использование System.Windows.Forms; пространство имен WindowsFormsApp4 {общедоступный частичный класс Form1: Form {public Form1 ()  {InitializeComponent ();  } private void Form1_Load (object sender, EventArgs e) {} private void textBox1_TextChanged (объект-отправитель, EventArgs e) {} private void textBox2_TextChanged (отправитель объекта, EventArgs e) {} private void textBox3_TextChanged (отправитель объекта) {объект-отправитель  void textBox4_TextChanged (отправитель объекта, EventArgs e) {} private void textBox5_TextChanged (отправитель объекта, EventArgs e) {} private void button1_Click (отправитель объекта, EventArgs e) {{string ServerName = textBox1.Text;  строка Database = textBox2.Text;  строка Имя пользователя = textBox3.Text;  строка Pass = textBox4.Text;  строка connetionString;  SqlConnection cnn;  ConnetionString = @ "Data Source =" + ServerName + "; Начальный каталог =" + Database + "; User ID =" + Username + "; Password =" + Pass + ";";  cnn = новый SqlConnection (connetionString);  попробуйте {cnn.Open ();  MessageBox.Show («Соединение открыто!»);  cnn.Close ();  } catch (Exception) {MessageBox.Show («Ошибка входа, неверная информация»);  }}} private void button2_Click (отправитель объекта, EventArgs e) {строка ServerName = textBox1.Text;  строка Database = textBox2.Text;  строка Имя пользователя = textBox3.Text;  строка Pass = textBox4.Text;  SqlConnection connection = новый SqlConnection ();  connection.ConnectionString = @ "Data Source =" + ServerName + "; Начальный каталог =" + Database + "; User ID =" + Username + "; Password =" + Pass + ";";  Команда SqlCommand = новый SqlCommand ();  command.Connection = соединение;  command.CommandText = "--ваш SQL-запрос -";  command.CommandType = CommandType.Text;  попробуйте {connection.Open ();  SqlDataReader reader = command.ExecuteReader ();  в то время как (reader.Read ()) {int CommunicatedRecordsCount = (int) reader [0];  textBox5.Text = CommunicatedRecordsCount.ToString ();  } reader.Close ();  } catch {} finally {если (connection.State == ConnectionState.Open) connection.Close ();  }}}}  

Там, где я искал числовой вывод, мы немного изменили вывод, но снова спасибо всем за помощь..


Очистите этот ввод!

Код события клика может выглядеть примерно так это:

  private void button2_Click (отправитель объекта, EventArgs e) {string ServerName = textBox1.Text;  строка Database = textBox2.Text;  строка Имя пользователя = textBox3.Text;  строка Pass = textBox4.Text; //строка results = textBox5.Text;  используя (var cnn = new SqlConnection ($ "Data Source = " {ServerName}  "; Initial Catalog = " {Database}  "; User ID = " {Username}  "; Password = " {Pass}   ";")) using (var cmd = cnn.CreateCommand ()) {cmd.CommandText = "- Ваш запрос здесь -";  попробуйте {cnn.Open ();  } catch (Exception ex) {//Ошибка подключения к базе данных.  } if (cnn.State == System.Data.ConnectionState.Open) {using (var reader = cmd.ExecuteReader ()) {while (reader.Read ()) {//Прочтите здесь ваши данные, строка за строкой.  ... или сделайте что-нибудь с textBox5}}}}}  

И поскольку вы просто получаете подсчеты, вы также можете пропустить программу чтения и сделать это вместо …

  if (cnn.State == System.Data.ConnectionState.Open) {var count = cmd.ExecuteScalar (); //count - это объект, преобразованный по мере необходимости.}  

5


Примерно так: откройте соединение со строкой подключения, вмененной пользователем, затем прочтите возвращенные строки и их поля

   Читатель SqlDataReader = ноль;  используя (соединение SqlConnection = новое соединение SqlConnection (_sqlConnectionStringFromUserImput)) {connection.Open ();  if (connection.State == ConnectionState.Open) {SqlCommand sqlCommand = new SqlCommand («выберите количество (*) из истории», соединение) {CommandType = CommandType.Text, CommandTimeout = 20};  reader = sqlCommand.ExecuteReader ();  если (reader.HasRows) {while (reader.Read ()) {DateTime datetimefield = reader.GetFieldValue  (0);  строка stringField = reader.GetFieldValue  (1);  }} reader.Close ();  } connection.Close ();  }  

8



/Learn-C-With-Windows-Forms-and-SQL-Server

Это репозиторий кода для Learn C # With Windows Forms и SQL Server Video, опубликованный Packt. Он содержит все вспомогательные файлы проекта, необходимые для проработки видеокурса от начала до конца.

О видеокурсе

Microsoft C # остается одним из самых популярных программных продуктов. языки сегодня. В этом курсе вы познакомитесь с языком, используя код и графические окна. В этом курсе используется сообщество Microsoft Visual Studio 2015. Вы узнаете о графических объектах, таких как текстовые поля, переключатели, раскрывающиеся списки, а также о многочисленных функциях программирования, таких как циклы и переменные, и многих других. Видеоуроки в среднем длится около 10 минут. Этот курс определенно лучше всего подходит для терпеливых. Перед покупкой обязательно внимательно ознакомьтесь с учебной программой, чтобы быть на 100% уверенными, что это правильный курс. Внизу находится довольно полный проект базы данных, иллюстрирующий передовые методы кодирования. Каждое видео в формате HD, а файлы проекта можно скачать с GitHub. Необходимая ссылка хранится в ресурсах урока. Спасибо за чтение, и давайте приступим к программированию!

Что вы узнаете

  • Создавайте и запускайте приложения Windows Forms и поймите блоки кода, фигурные скобки, комментарии, интерполяция строк и добавление символов новой строки.
  • Создавайте и используйте такие объекты, как метки, и их свойства, такие как текст.
  • Используйте несколько разных типы данных, такие как логические, десятичные, строковые и другие.
  • Используйте методы, преобразующие значения в числовую форму для математических операций.
  • Узнайте, как работать с полями форматированного текста и размещать переменные в нужном месте для достижения определенных эффектов, с переключателями, индексными переменными и циклами while
  • Узнайте об операторах, операндах и о том, как их правильно комбинировать.
  • Используйте метод TryParse для создания стабильных приложений, которые не дают сбоев.
  • Используйте конструкции Date time для чтения и создания дат в различных форматах.
  • Узнайте, как использовать подсказки , переключать блоки, проверять списки
  • Понять и понятие параметра и возвращаемого значения.
  • Понять, как работать с числовыми элементами управления вверх/вниз и файлами классов.
  • Понять, как модификаторы частного и общего доступа важно и зачем нужны статические классы.
  • Узнайте, как использовать массивы, каталоги и циклы foreach с массивами.
  • Понять, как работать с коллекциями и элементом управления datagridview
  • Узнайте, как записывать записи в текстовый файл.
  • Узнайте, как экспортировать данные в Microsoft Word.
  • Узнайте, как загружать и сохранять файлы из Интернета с помощью различные методы

Инструкции и навигация

Предполагаемые знания

Чтобы в полной мере воспользоваться охватом, включенным в для этого курса вам понадобятся:

  • Это хороший курс для тех, кто хочет изучить C # через Windows Forms, и для тех, кто интересуется проектами баз данных. Это курс не для тех, кто хочет изучать C # через консольные приложения.
  • Технические требования

    Этот курс имеет следующие программные требования:
    Н/Д

    Сопутствующие продукты

    • Изучите SQL с Microsoft SQL Server [Видео]

    • Практическое руководство по кластерам больших данных SQL Server 2019 с использованием Spark [видео]

    • Введение в MySQL с использованием узла .js — научитесь использовать MySQL с узлом [видео]

    Оцените статью
    clickpad.ru
    Добавить комментарий