|
0 / 0 / 0
Регистрация: 23.05.2021
Сообщений: 16
|
|
Выбирать строки , которые будут отображаться20.12.2021, 11:56. Показов 563. Ответов 0
Метки нет (Все метки)
Есть данный код, который открывает базу данных и выводит нужную информацию. Задача такая : необходимо написать программу ( кнопка и отображение в табличке) пользователь сам выбирает какой товар вывести ( по идентификатору) допустим цифра 4, выводит первые 4 или 4 элемент из таблицы.
using System; using System.Collections.Generic; using System.ComponentModel; using System.Data; using System.Drawing; using System.Linq; using System.Text; using System.Threading.Tasks; using System.Windows.Forms; using System.Data.SQLite; using System.Windows.Forms.DataVisualization.C harting; namespace Лаб_Раб__5 { public partial class MainForm : Form { private SQLiteConnection SQLiteConn; private DataTable dTable; public MainForm() { InitializeComponent(); comboBox1.Enabled = false; comboBox2.Enabled = false; comboBox3.Enabled = false; button2.Enabled = false; button3.Enabled = false; button4.Enabled = false; button5.Enabled = false; button6.Enabled = false; button7.Enabled = false; radioButton1.Enabled = false; radioButton2.Enabled = false; radioButton3.Enabled = false; } private void MainForm_Load(object sender, EventArgs e) { SQLiteConn = new SQLiteConnection(); dTable = new DataTable(); } private bool OpenDBFile() { OpenFileDialog openFileDialog = new OpenFileDialog(); openFileDialog.InitialDirectory = Environment.GetFolderPath(Environment.Sp ecialFolder.Desktop); openFileDialog.Filter = "Текстовые файлы (*.db)|*.db|Все файлы(*.*)|*.*"; if (openFileDialog.ShowDialog(this) == DialogResult.OK) { SQLiteConn = new SQLiteConnection("Data Source=" + openFileDialog.FileName + ";Version=3;"); SQLiteConn.Open(); SQLiteCommand command = new SQLiteCommand(); command.Connection = SQLiteConn; return true; } else return false; } private void GetTableNames() { string SQLQuery = "SELECT name FROM sqlite_master WHERE type='table' ORDER BY name;"; SQLiteCommand command = new SQLiteCommand(SQLQuery, SQLiteConn); SQLiteDataReader reader = command.ExecuteReader(); comboBox1.Items.Clear(); while (reader.Read()) { comboBox1.Items.Add(reader[0].ToString()); } } private string SQL_AllTable() { return "SELECT * FROM [" + comboBox1.SelectedItem + "] order by 1"; } private string SQL_FilterByManufacture() { return "SELECT * FROM [" + comboBox1.SelectedItem + "]" + "WHERE Производитель = "" + comboBox3.SelectedItem + "";"; } private string SQL_FilterByProduct() { return "SELECT * FROM [" + comboBox1.SelectedItem + "]" + "WHERE [Количество (коробки)] <=2;"; } private void ShowTable(string SQLQuery) { dTable.Clear(); SQLiteDataAdapter adapter = new SQLiteDataAdapter(SQLQuery, SQLiteConn); adapter.Fill(dTable); dataGridView1.Columns.Clear(); dataGridView1.Rows.Clear(); for (int col=0;col<dTable.Columns.Count;col++) { string ColName = dTable.Columns[col].ColumnName; dataGridView1.Columns.Add(ColName, ColName); dataGridView1.Columns[col].AutoSizeMode = DataGridViewAutoSizeColumnMode.AllCells; } for (int row=0;row<dTable.Rows.Count;row++) { dataGridView1.Rows.Add(dTable.Rows[row].ItemArray); } } private void GetTableColumns() { string SQLQuery = "PRAGMA table_info("" + comboBox1.SelectedItem + "");"; SQLiteCommand command = new SQLiteCommand(SQLQuery, SQLiteConn); SQLiteDataReader read = command.ExecuteReader(); comboBox2.Items.Clear(); while (read.Read()) { comboBox2.Items.Add((string)read[1]); } } private void GetManufactures() { int kol = 0; string s1, s2; comboBox3.Items.Clear(); for (int row=0;row<dTable.Rows.Count;row++) { for (int i=0; i < comboBox3.Items.Count; i++) { s1 = (string)dTable.Rows[row].ItemArray[2]; s2 = (string)comboBox3.Items[i]; if (String.Compare(s1, s2) == 0) kol++; } if (kol == 0) comboBox3.Items.Add(dTable.Rows[row].ItemArray[2]); else kol = 0; } } private void button1_Click(object sender,EventArgs e) { if (OpenDBFile()==true) { GetTableNames(); comboBox1.Enabled = true; button2.Enabled = true; } } private void button2_Click(object sender,EventArgs e) { if (comboBox1.SelectedIndex==-1) { MessageBox.Show("Выберите таблицу!", "Ошибка", MessageBoxButtons.OK, MessageBoxIcon.Error); return; } comboBox2.Enabled = true; comboBox3.Enabled = true; button3.Enabled = true; button4.Enabled = true; button5.Enabled = true; button6.Enabled = true; button7.Enabled = true; radioButton1.Enabled = true; radioButton2.Enabled = true; radioButton3.Enabled = true; ShowTable(SQL_AllTable()); GetTableColumns(); GetManufactures(); chart1.Series.Clear(); for (int row = 0; row < dTable.Rows.Count; row++) { Series S = chart1.Series.Add(dTable.Rows[row].ItemArray[1].ToString()); } for (int row = 0; row < dTable.Rows.Count; row++) { int p = chart1.Series[row].Points.AddXY(dTable.Rows[row].ItemArray[0], dTable.Rows[row].ItemArray[3]); } } private void button3_Click(object sender, EventArgs e) { if (comboBox2.SelectedIndex == -1) { MessageBox.Show("Выберите поле для расчета", "Ощибка", MessageBoxButtons.OK, MessageBoxIcon.Error); return; } double max; double min; double sum = 0; double value; try { max = Convert.ToDouble(dTable.Rows[0].ItemArray[comboBox2.SelectedIndex]); min = Convert.ToDouble(dTable.Rows[0].ItemArray[comboBox2.SelectedIndex]); } catch { MessageBox.Show("Поле не является числовым", "Ощибка", MessageBoxButtons.OK, MessageBoxIcon.Error); return; } for (int row=0;row<dTable.Rows.Count;row++) { value = Convert.ToDouble(dTable.Rows[row].ItemArray[comboBox2.SelectedIndex]); if (value > max) max = value; if (value < min) min = value; sum = sum + value; } string MyMessege = ""; if ((sender as Button).Name == "button3") MyMessege = "Минимальное значение в поле" + comboBox2.Text + "=" + min.ToString(); if ((sender as Button).Name == "button4") MyMessege = "Минимальное значение в поле" + comboBox2.Text + "=" + max.ToString(); if ((sender as Button).Name == "button5") MyMessege = "Минимальное значение в поле" + comboBox2.Text + "=" + (sum / dTable.Rows.Count).ToString(); if ((sender as Button).Name == "button6") MyMessege = "Минимальное значение в поле" + comboBox2.Text + "=" + sum.ToString(); MessageBox.Show(MyMessege, "Расчеты", MessageBoxButtons.OK, MessageBoxIcon.Information); } private void button7_Click(object sender,EventArgs e) { if (comboBox3.SelectedIndex==-1 && radioButton2.Checked==true) { MessageBox.Show("Выберите производителя товара", "Ощибка", MessageBoxButtons.OK, MessageBoxIcon.Error); return; } if (radioButton1.Checked == true) ShowTable(SQL_AllTable()); if (radioButton2.Checked == true) ShowTable(SQL_FilterByManufacture()); if (radioButton3.Checked == true) ShowTable(SQL_FilterByProduct()); } private void dataGridView1_CellContentClick(object sender, DataGridViewCellEventArgs e) { } } }
0
|
|
| 20.12.2021, 11:56 | |
|
Ответы с готовыми решениями:
0
Разбивка длинной строки на подстроки, которые будут помещаться в TextBox без переноса Как сделать рассылку с 3мя одинаковыми колонками, которые будут отображаться одинаково везде (gmail, outlook)? Будут ли отображаться стили для не поддерживаемых элементов html 5? |
| 20.12.2021, 11:56 | |
|
Помогаю со студенческими работами здесь
1
Реализовать окно, в котором будут отображаться hex значения цветов Сделать кнопки которые будут удалять и добавлять строки в базу данных.
Необходимо написать функцию, при которой будут отображаться карты и проверяться совпадение Выставить параметр после которого все открываемые окна будут отображаться в развернутом виде Искать еще темы с ответами Или воспользуйтесь поиском по форуму: |
|
Новые блоги и статьи
|
|||
|
Знаешь почему 90% людей редко бывают счастливыми?
kumehtar 14.04.2026
Потому что они ждут. Ждут выходных, ждут отпуска, ждут удачного момента. . .
а удачный момент так и не приходит.
|
Фиксация колонок в отчете СКД
Maks 14.04.2026
Фиксация колонок в СКД отчета типа Таблица.
Задача: зафиксировать три левых колонки в отчете.
Процедура ПриКомпоновкеРезультата(ДокументРезультат, ДанныеРасшифровки, СтандартнаяОбработка)
/ / . . .
|
Настройки VS Code
Loafer 13.04.2026
{
"cmake. configureOnOpen": false,
"diffEditor. ignoreTrimWhitespace": true,
"editor. guides. bracketPairs": "active",
"extensions. ignoreRecommendations": true,
. . .
|
Оптимизация кода на разграничение прав доступа к элементам формы
Maks 13.04.2026
Алгоритм из решения ниже реализован на нетиповом документе, разработанного в конфигурации КА2.
Задачи, как таковой, поставлено не было, проделанное ниже исключительно моя инициатива.
Было так:. . .
|
|
Контроль заполнения и очистка дат в зависимости от значения перечислений
Maks 12.04.2026
Алгоритм из решения ниже реализован на примере нетипового документа "ПланированиеПерсонала", разработанного в конфигурации КА2.
Задача: реализовать контроль корректности заполнения дат назначения. . .
|
Архитектура слоя интернета для сервера-слоя.
Hrethgir 11.04.2026
В продолжение https:/ / www. cyberforum. ru/ blogs/ 223907/ 10860. html
Знаешь что я подумал? Раз мы все источники пишем в голове ветки, то ничего не мешает добавить в голову такой источник, который сам. . .
|
Подстановка значения реквизита справочника в табличную часть документа
Maks 10.04.2026
Алгоритм из решения ниже реализован на примере нетипового документа "ПланированиеПерсонала", разработанного в конфигурации КА2.
Задача: при выборе сотрудника (справочник Сотрудники) в ТЧ документа. . .
|
Очистка реквизитов документа при копировании
Maks 09.04.2026
Алгоритм из решения ниже применим как для типовых, так и для нетиповых документов на самых различных конфигурациях.
Задача: при копировании документа очищать определенные реквизиты и табличную. . .
|