Форум программистов, компьютерный форум, киберфорум
C# Windows Forms
Войти
Регистрация
Восстановить пароль
Блоги Сообщество Поиск  
 
 
Рейтинг 5.00/11: Рейтинг темы: голосов - 11, средняя оценка - 5.00
0 / 0 / 0
Регистрация: 29.03.2021
Сообщений: 74

Как правильно переписать подключение БД

29.07.2022, 11:47. Показов 2304. Ответов 30

Студворк — интернет-сервис помощи студентам
Здраствуйте как переписать вот эту часть
C#
1
 this.GAWTBindingSource.Sort  = this.advancedDataGridView1.SortString;
Так как у меня идёт соединение с БД через код
C#
1
   public static string ConnectionString = "Server=192.168.1.100;Database=MAIN-SERVER;user id=qw;password=***; Initial Catalog=GAWT;"; // строка подключения
А вот так идёт загрузка в таблицы
C#
1
2
3
4
5
6
7
 public static void LoadTable(string query) // загрузка таблиц
        {
            
            ds = new DataSet();
            SqlDataAdapter dataAdapter = new SqlDataAdapter(query, ConnectionString);
            dataAdapter.Fill(ds);
        }
C#
1
2
3
   Energy.LoadTable(@"SELECT   ID, NameZ as [Порт погрузки], NameN as [Порт назначения], CONCAT(Pacto, YK ) as Растояние  FROM   dbo.TARIF");
            advancedDataGridView1.DataSource = Energy.ds.Tables[0].DefaultView;
            advancedDataGridView1.Columns[0].Visible = false;
Миниатюры
Как правильно переписать подключение БД  
0
Лучшие ответы (1)
Programming
Эксперт
39485 / 9562 / 3019
Регистрация: 12.04.2006
Сообщений: 41,671
Блог
29.07.2022, 11:47
Ответы с готовыми решениями:

Как правильно переписать?
Помогите, пожалуйста, правильно написать Edges:array of Integer = (( 1, 2, 60), (1, 3, 250), (1, 4, 210),...

Как правильно переписать код?
Есть код на С++ для решения системы нелинейных уравнений методом итераций. Как его правильно переписать на python? #include...

Как правильно переписать логику OnInput?
Здравствуйте. Есть логика в OnInput, нужно оставить первый INPUT и вместо оставшиеся двух инпутов выводить значения которые считаются в...

30
2810 / 1679 / 885
Регистрация: 14.04.2015
Сообщений: 5,723
03.08.2022, 16:22
Лучший ответ Сообщение было отмечено Danda как решение

Решение

Студворк — интернет-сервис помощи студентам
Danda, для колонки "порт_погрузки" нужно использовать элемент comboBox, раз выбирается только одно значение
так же нужно добавить кнопку на форму и добавить в нее код
C#
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
StringBuilder sql = new StringBuilder();
 
sql.Append($"SELECT ID, NameZ as [Порт погрузки], NameN as [Порт назначения], CONCAT(Pacto, YK ) as Расcтояние  FROM   dbo.TARIF  WHERE NameZ = '{comboBox1.SelectedValue}'");
            
if (checkedListBox1.CheckedItems.Count == 0)
{
    MessageBox.Show("Не выбран ни один порт назначения");
 
    return;
}
sql.Append(" AND NameN IN ");
 
List<string> nameN = new List<string>();
 
foreach (var s in checkedListBox1.CheckedItems)
{
    nameN.Add(s.ToString());
}
sql.Append("('" + String.Join("', '", nameN) + "')");
 
Energy.LoadTable(sql.ToString());
 
dataGridView1.DataSource = Energy.ds.Tables[0].DefaultView;
 
dataGridView1.Columns[0].Visible = false;
 
dataGridView1.AlternatingRowsDefaultCellStyle.Font = new Font("Century Gothic", 13.5f, FontStyle.Regular | FontStyle.Regular);
 
dataGridView1.ColumnHeadersDefaultCellStyle.Font = new Font("Century Gothic", 13.5f, FontStyle.Regular | FontStyle.Regular);
а из обработчиков checkedListBox1_SelectedValueChanged и checkedListBox3_SelectedValueChanged все удалить
0
0 / 0 / 0
Регистрация: 29.03.2021
Сообщений: 74
04.08.2022, 12:30  [ТС]
Kazbek17, Как в эту строку
Добавить значение OR
SQL
1
2
3
4
SELECT        ID, NameZ, NameN, Pacto, YK
FROM            dbo.TARIF
WHERE        (NameZ = N'Брест') AND (NameN = N'Пинск' OR
                         NameN = N'Могилёв')
Миниатюры
Как правильно переписать подключение БД  
0
 Аватар для Andrey-MSK
3381 / 2267 / 388
Регистрация: 14.08.2018
Сообщений: 7,684
Записей в блоге: 4
04.08.2022, 12:39
Цитата Сообщение от Danda Посмотреть сообщение
Как в эту строку
Добавить значение OR
Выкинуть DataSet куда подальше и написать все на SqlCommand... Будет проще, понятнее и крутить запросами можно спокойно.
0
0 / 0 / 0
Регистрация: 29.03.2021
Сообщений: 74
04.08.2022, 12:47  [ТС]
Цитата Сообщение от Andrey-MSK Посмотреть сообщение
Выкинуть DataSet куда подальше и написать все на SqlCommand... Будет проще, понятнее и крутить запросами можно спокойно.
А по точнее можно ?
0
 Аватар для Andrey-MSK
3381 / 2267 / 388
Регистрация: 14.08.2018
Сообщений: 7,684
Записей в блоге: 4
04.08.2022, 12:50
Цитата Сообщение от Danda Посмотреть сообщение
А по точнее можно ?
Можно конечно
Руководство по ADO.NET и работе с базами данных в .NET 6 - Глава 1.

Добавлено через 1 минуту
Ну и пример - https://www.cyberforum.ru/ado-... st16373306
0
 Аватар для Kazbek17
1484 / 939 / 454
Регистрация: 06.02.2012
Сообщений: 2,870
04.08.2022, 14:38
Цитата Сообщение от Andrey-MSK Посмотреть сообщение
Выкинуть DataSet куда подальше и написать все на SqlCommand
Ну я лично не согласен. Кому как удобнее. Параметры это хорошо, но так каждую колонку прописывать, это жуть. С точки зрения читаемости кода- это подходит, но писать такие серпантины не вариант. Это мое мнение, без обид.

Добавлено через 6 минут
Цитата Сообщение от Danda Посмотреть сообщение
Добавить значение OR
C#
1
2
3
4
if(col.Count > 2)
Energy.LoadTable(sql + string.Join(" OR ", col));
else
Energy.LoadTable(sql + string.Join(" AND ", col));
Как то так. Не бойтесь пробовать условный оператор. В жизни вы так же используете условие. Если так, то значит этак, иначе вот так.
0
 Аватар для Andrey-MSK
3381 / 2267 / 388
Регистрация: 14.08.2018
Сообщений: 7,684
Записей в блоге: 4
04.08.2022, 14:38
Цитата Сообщение от Kazbek17 Посмотреть сообщение
но так каждую колонку прописывать, это жуть.
Про Dapper.NET TC потом узнает
0
 Аватар для Kazbek17
1484 / 939 / 454
Регистрация: 06.02.2012
Сообщений: 2,870
04.08.2022, 14:42
Цитата Сообщение от Andrey-MSK Посмотреть сообщение
Про Dapper.NET TC потом узнает
Согласен! Сам писал такую штуку через рефлекcию, было просто интересно. Но на 100000 записей не очень приятное ожидание, конечно не критично, но заметно.
0
2810 / 1679 / 885
Регистрация: 14.04.2015
Сообщений: 5,723
04.08.2022, 14:44
Danda, зачем там OR, если IN, который я написал эквивалентен? хотите усложнять себе жизнь, ну, в принципе, это Ваше право.
0
0 / 0 / 0
Регистрация: 29.03.2021
Сообщений: 74
05.08.2022, 10:05  [ТС]
А checkboxlist мы заполняем кодом или кучками
потому что если это тот код проверять то в combobox.SelectValue всегда значение null.

Добавлено через 1 минуту
Цитата Сообщение от AndreyVorobey Посмотреть сообщение
для колонки "порт_погрузки" нужно использовать элемент comboBox, раз выбирается только одно значение
так же нужно добавить кнопку на форму и добавить в нее код
C#
AndreyVorobey в твоём коде на кнопке
0
2810 / 1679 / 885
Регистрация: 14.04.2015
Сообщений: 5,723
05.08.2022, 10:16
Danda,
Цитата Сообщение от Danda Посмотреть сообщение
в твоём коде на кнопке
потому что это нормальная практика - заполнил все фильтры, применил, получил результат. зачем издеваться над базой, отправляя туда кучу запросов каждый раз нажимая на checkboxlist, например?
Цитата Сообщение от Danda Посмотреть сообщение
в combobox.SelectValue всегда значение null
а он что, пустой? там должны быть названия портов погрузки. если он заполнен руками, то можно указать параметр для отображения во время загрузки формы.
C#
1
comboBox1.SelectedIndex = 0;
если заполняется из базы, тогда после его заполнения.
и лучше заменить comboBox1.SelectedValue на comboBox1.Text

и никто не запрещает добавить этот код в checkedListBox1_SelectedValueChanged (список портов назначения)
тогда нужно сначала выбрать из comboBox1 порт погрузки, затем выбирать порты назначения.
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
inter-admin
Эксперт
29715 / 6470 / 2152
Регистрация: 06.03.2009
Сообщений: 28,500
Блог
05.08.2022, 10:16

Как правильно переписать эту программу с C++ на C?
//Добрый вечер, форумчане! Помогите пожалуйста, перевести программу с языка СИ++ на язык СИ! Условие: /* Написать программу поиска...

Как правильно переписать данную программу?
#!/usr/bin/env ruby class Parser require 'open-uri' require 'open_uri_redirections' def parse number_of_pages...

Как правильно переписать программу на чистый C с C++
Написал программу на C++, но оказалось что нужно на C (прошу прощения, если не правильно описал языки).Ввод и вывод понятно как переписать,...

Как правильно переписать на C++Builder с Delphi
Как правильно переписать на C++Builder: procedure Process; var I, Min, MinPos:Integer; begin if InArr(VertArr,...

Как правильно переписать статью, чтобы
Здравствуйте, уважаемые знатоки. Прошу совета: как правильно переписать уникальную статью, чтобы Яша стал считать ее уникальной? Достаточно...


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
31
Ответ Создать тему
Новые блоги и статьи
Из невошедшего на форум (диалог с ИИ-гугла)
zorxor 29.07.2026
А вот, что интересно, сказал мне ИИ-гугла: Этот текст — эмоциональный пост пользователя под ником zorxor на интернет-форуме (вероятно, посвященном мистике, непознанному или альтернативной науке). . . .
Был праздник вчера, а я и не знал.
kumehtar 28.07.2026
27. 07. 2026г. Intel Core 2 Duo исполнилось 20 лет Новости компьютерного мира и их обсуждение (4) Салют, шампанское, овации! :drink:
Нейтральные знания, чистый код - бла-бла-бла-бла, на самом деле кликбейт и самореклама, плагиат, и вот почему
Hrethgir 27.07.2026
То-есть отклонение такой публикации говорит само за себя, и пусть только возьмут на вооружение после отклонения публикации - это будет чистейшим актом плагиата. Отклонял Хабр. Дословно, отклонённая. . .
тв 16 бой ии
anaschu 27.07.2026
Великий Перелом ИИ: Как уравнения ОДУ Radau дожали цензурные фильтры Алисы Фиксируем в мемофонде Теории Всего беспрецедентный факт в истории ИИ-зондирования. В затяжном многораундовом. . .
мв 15. непроверенное, возможно, глюк
anaschu 27.07.2026
НАУЧНО-АНАЛИТИЧЕСКИЙ ОТЧЕТ. РАЗДЕЛ 1. 1: «НАУКА» (РАСШИРЕННАЯ СТЕХИОМЕТРИЧЕСКАЯ И ГЕНЕТИЧЕСКАЯ ВЕРСИЯ)Тема: Теоретическое обоснование инвариантности 19-мерного тензорного ядра непрерывных ОДУ и. . .
Очистка реквизитов и табличных частей документа при копировании (вариант 2)
Maks 26.07.2026
Алгоритм из решения ниже разработан на примере нетипового документа "ЗаявкаНаРаботу", разработанного в КА2. Задача: Заменить алгоритм запрета копирования документов для сотрудников с ролью "Стажер",. . .
Доктрина интенционального знания - Доктрина для портала "Срез".
Hrethgir 25.07.2026
Может найдётся кто захочет оценить доктрину. . . Написания правил участия для меня роскошь, требующая лимита времени, поэтому все сообщения не прошедшие модерацию будут видны только участникам портала,. . .
сукцессия 44. Решил подать на припринт в межународные сервисы препринтов. Но нужно одобрение от ученых
anaschu 25.07.2026
Английский вариант. Пока кто то не одобрит мою личность, мне не получиться это опубликовать на препринте. Но заявку на публикацию статьи я сегодня подам.
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2026, CyberForum.ru