Member 12575668 Ответов: 1

Навигация по набору данных


' Create two instances of the DataTable object to reference the two tables

Dim tblCategories As DataTable = DS.Tables("Categories")
Dim tblProducts As DataTable = DS.Tables("Products")

' Create two DataColumn objects to reference the columns on which the relation is based

' error message is: Object reference not set to an instance of an object
Dim colCatCategoryID As DataColumn = tblCategories.Columns("CategoryID")
Dim colProdCategoryID As DataColumn = tblProducts.Columns("CategoryID")


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

При тусклом colCatCategoryID как объект datacolumn = tblCategories.Столбцы ("CategoryID") я получаю этот msg : ссылка на объект не установлена на экземпляр объекта.

Michael_Davies

Используйте отладчик, чтобы пройти и проверить это

Dim tblCategories As DataTable = DS. Tables ("категории")

на самом деле возвращает таблицу под названием Categories, если она не проверяет ваш SQL, чтобы понять, почему нет.

Patrice T

В чем вопрос ? В чем проблема?

Member 12575668

Вы можете прочитать его в том, что я пробовал: At Dim colCatCategoryID As DataColumn = tblCategories.Столбцы ("CategoryID") я получаю этот msg : ссылка на объект не установлена на экземпляр объекта.

Приложение "" прерывается и отображается ошибка : ссылка на объект не установлена на экземпляр объекта.

1 Ответов

Рейтинг:
2

Patrice T

Сообщение об ошибке означает, что tblCategories.Columns("CategoryID") не является ожидаемым объектом.

Используйте отладчик, чтобы увидеть, что добавить.
Убедитесь, что столбец существует.

Цитата:
Столбец CategoryID существует в таблице категорий.
Да но вы открываете таблицу с именем Categories.

[Обновление]
Используйте отладчик, чтобы убедиться, что база данных открывается правильно.
Используйте отладчик, чтобы узнать, где происходит сбой.


Member 12575668

Столбец CategoryID существует в таблице категорий.

Member 12575668

Поправка в моем комментарии. Это не Категория, А категории: столбец CategoryID существует в таблице категорий.

Michael_Davies

Он может существовать в таблице, но существует ли эта таблица в наборе данных?

Member 12575668

Используя отладчик, я получаю: ссылка на объект не установлена на экземпляр объекта.
Он выходит в наборе данных с DS. Tables ("Categories"), где DS - это набор данных с Dim DS в качестве нового набора данных

an0ther1

Используйте немедленное окно & проверьте имя таблицы в наборе данных - вы, вероятно, обнаружите, что таблица категорий не существует.
Если вы используете свое непосредственное окно, вы можете ввести следующее;

? ДС.Таблицы.Рассчитывать

Это должно возвращать число (0, 1, 2 и т. д.)
Затем получите фактические имена в наборе данных, выполнив следующие действия;

? DS. таблицы (0).Имятаблицы
? DS. таблицы(1).Имятаблицы
Продолжайте, пока у вас не будет названия для каждого из ваших столов.

Обратите внимание: таблицы в наборах данных не обязательно имеют имя, если вы не задали его при создании набора данных.
Имена таблиц и столбцов чувствительны к регистру.
Ссылка на объект не установлена на экземпляр объекта это означает, что того, что вы ищете, там нет

с уважением

Member 12575668

1. С ДС.Таблицы.Count I get a Count of 2. Таблица категорий и таблица продуктов. Есть. Это не проблема . Я использую Northwind в нескольких приложениях и во всех таблицах в других наборах данных.

2. Я смотрю на таблицу категорий щас в приложения в Visual студии.

3. проблема не в этом.

Я также сделал запросы с таблицей Catagories в MSSMS (Microsoft SQL Server Management Studio). Взгляните на эту книгу: освоение Visual Basic 2010, стр. 711. Тема "навигация по набору данных". Вот оно, примерное упражнение.

В любом случае спасибо

Member 12575668

Поправка в моем комментарии. Опечатка. Это категории, а не Катагории. Но таблица существует в приложении. Получите количество 2, а также сделайте запрос SELECT * FROM Categories и получите результат.