Форум программистов, компьютерный форум, киберфорум
C# Windows Forms
Войти
Регистрация
Восстановить пароль
Блоги Сообщество Поиск Заказать работу  
 
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
cpp_developer
Эксперт
20123 / 5690 / 1417
Регистрация: 09.04.2010
Сообщений: 22,546
Блог
20.12.2021, 11:56
Ответы с готовыми решениями:

Разбивка длинной строки на подстроки, которые будут помещаться в TextBox без переноса
Добрый день. Имеется длинная строка, например 500000 символов. Необходимо ее разбить на массив строк, таких, которые бы вмещались, например...

Как сделать рассылку с 3мя одинаковыми колонками, которые будут отображаться одинаково везде (gmail, outlook)?
Добрый день, у меня возникла проблема при верстке 3 колонок в рассылке, которые должны отображаться одинаково везде ( в одной строке на...

Будут ли отображаться стили для не поддерживаемых элементов html 5?
Я имею в виду что использую тег марк html 5. IE 8 или 6 я так понимаю не поддерживают некоторых тегов из html 5 и тег марк покажется для...

0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
raxper
Эксперт
30234 / 6612 / 1498
Регистрация: 28.12.2010
Сообщений: 21,154
Блог
20.12.2021, 11:56
Помогаю со студенческими работами здесь

Реализовать окно, в котором будут отображаться hex значения цветов
Здравствуйте,у меня есть готовый код(который будет ниже),но мне захотелось.добавить в него окно,в котором будут отображаться hex значения...

Сделать кнопки которые будут удалять и добавлять строки в базу данных.
не могу сделать кнопки которые будут удалять и добавлять строки в базу данных, кто шарит, помогите. базу данных ввел в делфи через ADO...

Создать таблицу t3, где будут отображаться данные по одинаковым значениям id — id_name таблиц
Нужна помощь, помогите разобраться пожалуйста: Существует 2 таблицы t1 и t2 в таблице t1 столбцы id, Name, в таблице t2 столбцы id,...

Необходимо написать функцию, при которой будут отображаться карты и проверяться совпадение
Пожалуй, перейду сразу к делу. Создаю небольшую игру (Найди пару). Имеется 52 карты, рандомно выбирается 9 карт, создаются пары и...

Выставить параметр после которого все открываемые окна будут отображаться в развернутом виде
Можно ли в Access выставить параметр после которого все открываемые окна будут отображаться в развернутом виде?


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

Или воспользуйтесь поиском по форуму:
1
Ответ Создать тему
Новые блоги и статьи
Знаешь почему 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
Алгоритм из решения ниже применим как для типовых, так и для нетиповых документов на самых различных конфигурациях. Задача: при копировании документа очищать определенные реквизиты и табличную. . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2026, CyberForum.ru