VB .NET: DataGridView.DataMember выдает ошибку при назначении имени, состоящего из двух частей. то есть Sales.StoreContact

Моя проблема описана здесь:

http://support.microsoft.com/kb/314043

Microsoft говорит: «Такое поведение предусмотрено дизайном».

Обходной путь не предусмотрен. Мне нужно обходное решение.

Итак, у меня есть набор данных, который правильно заполнен содержимым таблицы с именем Sales.StoreContact.

Когда я пытаюсь использовать DataGridView1.DataMember="Sales.SalesContact", среда IDE выдает:

Исключение аргумента не обработано.
Невозможно создать дочерний список для поля "Продажи".

Мне действительно нужна помощь здесь, так как я пробовал много вещей, и ничего не получалось. Я также не хочу переименовывать свои таблицы.

Заранее спасибо,

Эрик

------- набор данных содержит -----

<NewDataSet>

 <Sales.SalesContact>
   <SalesContactID>1</SalesContactID>  
   <Name>Jimmy&lt;/Name>  
   <ReasonType>Damaged&lt;/ReasonType>  
   <ModifiedDate>2010-01-05T00:00:00+00:00&lt;/ModifiedDate>  
 </Sales.SalesContact>  

</NewDataSet>


person Community    schedule 15.09.2010    source источник
comment
Я использовал .DataSource = dsTableContents.Tables.Item(0), так как мне пришлось использовать эту операцию в динамическом контексте.   -  person user323186    schedule 15.09.2010


Ответы (2)


Обновление: если ваш DataTable называется "Sales.SalesContact", вы можете попробовать установить свойство DataGridView.DataSource непосредственно в DataTable (вместо DataSet):

Dim salesContactTable As DataTable = dataSet.Tables("Sales.SalesContact")
dataGridView.DataSource = salesContactTable

Итак, вы говорите, что у вас есть DataSet под названием "Продажи", который содержит таблицу под названием "Контакты по продажам"?

Вы пытались установить для свойства DataGridView.DataSource значение "Продажи" DataSet, а для DataGridView.DataMember просто значение "Контакт по продажам"?

person Community    schedule 15.09.2010
comment
‹NewDataSet› ‹Sales.SalesContact› ‹SalesContactID›1‹/SalesContactID› ‹Name›Jimmy‹/Name› ‹ReasonType›Damaged‹/ReasonType› ‹ModifiedDate›2010-01-05T00:00:00+00:00‹/ ModifiedDate› ‹/Sales.SalesContact› ‹/NewDataSet› - person user323186; 15.09.2010
comment
@ user323186: Понятно. Итак, ваша таблица называется Sales.SalesContact? - person Dan Tao; 15.09.2010
comment
только что попробовал это. к сожалению тот же результат. Невозможно создать дочерний список для поля SalesContact. Итак, чтобы подтвердить, что я сделал это правильно, я сделал: Dim salesContactTable As DataTable = dsTableContents.Tables(Sales.SalesContact), затем связал источник данных с salesContactTable и элемент данных с SalesContact. Любые другие предложения? - person user323186; 15.09.2010
comment
@ user323186: Извините за все неудачные попытки. Но мое предложение немного отличалось от того, что вы только что сказали; Я предлагал установить DataSource для таблицы (как и вы) но оставить DataMember пустым; не присваивайте его ничему. Что происходит, когда вы пытаетесь это сделать? - person Dan Tao; 15.09.2010
comment
Выглядит хорошо. Большое спасибо. Странно, как я пробовал это раньше с источником данных, и это не сработало, но хорошо, когда я использовал dataTable. Хотелось бы знать, почему. Но кому как, спасибо. - person user323186; 15.09.2010

Проверьте свои пробелы... я только что столкнулся с той же ошибкой, и у меня был пробел в конце имени таблицы, например "имя таблицы", а не "имя таблицы"

person Community    schedule 05.07.2012