Как отфильтровать 5 различных таблиц с помощью одного datagridview и tabcontrol
У меня есть 4 таблицы, касающиеся компьютерного оборудования. Рабочий стол, Блокнот, БАРАН, ЦП и ДИСК.
Вот отрывок из того, что я сделал, но это не совсем хорошо работает.
Что я уже пробовал:
If tcStock.SelectedIndex = 0 Then Dim ds As New DataSet Dim dt As New DataTable ds.Tables.Add(dt) Dim da As New OleDbDataAdapter("SELECT * FROM CPU WHERE sold = 0", connection) da.Fill(dt) Dim coluna As DataRow For Each coluna In dt.Rows lvProdutos.Items.Add(coluna.Item(0)) lvProdutos.Items(lvProdutos.Items.Count - 1).SubItems.Add(coluna.Item(1)) Next ElseIf tcStock.SelectedIndex = 1 Then Dim ds As New DataSet Dim dt As New DataTable ds.Tables.Add(dt) Dim da As New OleDbDataAdapter("SELECT * FROM RAM WHERE sold = 0", connection) da.Fill(dt) Dim coluna As DataRow For Each coluna In dt.Rows lvProdutos.Items.Add(coluna.Item(0)) lvProdutos.Items(lvProdutos.Items.Count - 1).SubItems.Add(coluna.Item(1)) Next ElseIf tcStock.SelectedIndex = 2 Then Dim ds As New DataSet Dim dt As New DataTable ds.Tables.Add(dt) Dim da As New OleDbDataAdapter("SELECT * FROM DISK WHERE sold = 0", connection) da.Fill(dt) Dim coluna As DataRow For Each coluna In dt.Rows lvProdutos.Items.Add(coluna.Item(0)) lvProdutos.Items(lvProdutos.Items.Count - 1).SubItems.Add(coluna.Item(1)) Next ElseIf tcStock.SelectedIndex = 3 Then Dim ds As New DataSet Dim dt As New DataTable ds.Tables.Add(dt) Dim da As New OleDbDataAdapter("SELECT * FROM NOTEBOOK WHERE sold = 0", connection) da.Fill(dt) Dim coluna As DataRow For Each coluna In dt.Rows lvProdutos.Items.Add(coluna.Item(0)) lvProdutos.Items(lvProdutos.Items.Count - 1).SubItems.Add(coluna.Item(1)) Next ElseIf tcStock.SelectedIndex = 4 Then Dim ds As New DataSet Dim dt As New DataTable ds.Tables.Add(dt) Dim da As New OleDbDataAdapter("SELECT * FROM DESKTOP WHERE sold = 0", connection) da.Fill(dt) Dim coluna As DataRow For Each coluna In dt.Rows lvProdutos.Items.Add(coluna.Item(0)) lvProdutos.Items(lvProdutos.Items.Count - 1).SubItems.Add(coluna.Item(1)) Next End If
Richard Deeming
"У меня есть 4 стола ..."
Так почему же вы перечислили 5 столы?
"это не совсем хорошо работает"
Это не очень хороший вопрос. Вы не сказали нам, что вы хотите, чтобы код сделал, и вы не сказали нам, что он делает сейчас.
Нажмите кнопку "улучшить вопрос" и обновите свой вопрос с четким описанием проблемы.
RickZeeland
Возможно, будет быстрее определить представление в вашей базе данных и использовать его в качестве источника данных для вашего datagridview.
CHill60
Лично у меня была бы таблица под названием [Hardware] и еще одна под названием [HardwareType]. Таблица [Hardware] будет содержать информацию о запасах и столбец внешнего ключа для таблицы [HardwareType] (ID INT, [Type] nvarchar(125)), которая будет содержать 5 строк
1 рабочий стол
2 ноутбука
3 Оперативная память
4 Процессор
5 диск
Затем, когда кто-то приходит с другим типом оборудования, все, что мне нужно сделать, это добавить некоторые данные вместо создания новой схемы таблицы.
Вы можете (должны) найти эту статью полезной: Основы нормализации базы данных[^]