Member 11856456 Ответов: 2

Можете ли вы получить таблицу по имени строки?


Поэтому я хочу передать строковое значение с именем таблицы в нем. Существует несколько таблиц, поэтому каждая из них будет вызвана в определенное время.

так что вместо этого
profiledt.Rows


есть ли способ сделать что-то вроде этого ["profiledt"].строки

Что я уже пробовал:

Я погуглил, но не смог найти никаких ответов, которые помогли бы решить эту проблему.

RickZeeland

Вы используете SQL Server ?

2 Ответов

Рейтинг:
15

Maciej Los

Да, вы можете!

Dim ds As DataSet = New DataSet()
'add 5 datatables with example data
For i= 1 To 5
	Dim dt As DataTable = New DataTable(String.Format("Table{0}", i))
	dt.Columns.AddRange(New DataColumn()  _
		{ _
			New DataColumn("ID", Type.GetType("System.Int32")), _
			New DataColumn("Description", Type.GetType("System.String")) _
		})
	dt.Rows.Add(New Object(){1, "SomeData"})
	ds.Tables.Add(dt)
Next

'get datatable by its name:
Dim d = ds.Tables("Table1")
'd variable is ready to use!


Для получения более подробной информации, пожалуйста, смотрите:
Класс Набора Данных (System.Data) | Microsoft Docs[^]
Наборы данных, таблицы данных и представления данных | Microsoft Docs[^]
набор данных.Таблицы Свойств (Системы.Данных) | Майкрософт Документы[^]


Member 11856456

Я немного изменил ваш код, потому что у меня уже есть несколько таблиц.

Dim d как новый набор данных
Profileadaptor.Заполнение(profiledt)
профиль.TableName = "Профиль"
г)столы.Добавить(profiledt)

работает так, как мне тоже это нужно. thanyou Maciej Los для рекомендации использования наборов данных для включения использования таблицы/таблиц по строковому имени.

Maciej Los

Всегда пожалуйста.
Ваше здоровье!
Мацей

Рейтинг:
1

RickZeeland

Вы можете использовать функцию, которая принимает имя таблицы в качестве параметра, что-то вроде этого примера: Визуальный Основной .Чистый язык - простая функция для чтения из базы данных и возвращает объект DataTable в качестве | vb.net учебник[^]