Visual Basic, .NET, ASP, VBScript
 

   
   
     

Форум - .NET

Страница: 1 |

 

  Вопрос: Последний вопрос по DataRelation! Помогите! Добавлено: 19.05.05 18:10  

Автор вопроса:  Florin
Завязано две таблицы COMPANY и PRODUCT в DataGrid1 и DataGrid2 соответственно. В DataGrid1 хочу вывести данные отсортированные по определенному зночению поля. Все работей нормально, если не пытаться отсортировать COMPANY.

Вот сам код:
Dim rel, rel1 As DataRelation
      
rel = New DataRelation("ASD", DS.Tables("COMPANY").Columns("ID_C"), DS.Tables("PRODUCT").Columns("ID_P"))
        DS.Relations.Add(rel)

'Тут пытаюсь сделать свою сортировку
OD.SelectCommand.CommandText = "SELECT ID_C, Название, Менеджер, Директор, Бухгалтер, Регион, VENDOR, Статус FROM COMPANY WHERE (VENDOR = 'V')"

        OD.Fill(DS)
        OD_Dop.Fill(DS)
        DataGrid1.SetDataBinding(DS, "COMPANY")
        DataGrid2.SetDataBinding(DS, "COMPANY.ASD")

Вижу такую ошибку:
An unhandled exception of type 'System.Data.ConstraintException' occurred in system.data.dll
Additional information: Failed to enable constraints. One or more rows contain values violating non-null, unique, or foreign-key constraints.
        

Ответить

  Ответы Всего ответов: 9  

Номер ответа: 1
Автор ответа:
 Павел



Администратор

ICQ: 326066673 

Вопросов: 368
Ответов: 5968
 Web-сайт: www.vbnet.ru
 Профиль | | #1
Добавлено: 20.05.05 09:52
Поясните пожалуйста назначение полей ID_P и ID_C...

Ответить

Номер ответа: 2
Автор ответа:
 Florin



Вопросов: 4
Ответов: 7
 Профиль | | #2 Добавлено: 20.05.05 10:36
Это ключивые поля в таблице COMPANY и PRODUCT я через них связываю эти таблицы.

Ответить

Номер ответа: 3
Автор ответа:
 Alex10



ICQ: 243869817 

Вопросов: 9
Ответов: 8
 Профиль | | #3 Добавлено: 20.05.05 13:34
а ты не хочешь использовать DataView, с ним удобнее
Если да то скажи, тогда я тебе напишу код

Ответить

Номер ответа: 4
Автор ответа:
 Florin



Вопросов: 4
Ответов: 7
 Профиль | | #4 Добавлено: 23.05.05 11:10
Сбасибо Alex10 я былбы очень признателен. Ато я так и не смог решить проблему тем способом!

Ответить

Номер ответа: 5
Автор ответа:
 Alex10



ICQ: 243869817 

Вопросов: 9
Ответов: 8
 Профиль | | #5 Добавлено: 23.05.05 12:17
ну вот я взял из своего примера

значт есть 2 тбл, страны и города


Private Sub Frm_CountryView_Load(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles MyBase.Load

Dim dvR As New DataView()
        cn.ConnectionString = strCon
        cn.Open()
        'выбераем записи из таблицы страны
        da = New OleDbDataAdapter("SELECT * FROM tb_Countries", cn)
        'выбераем записи из таблицы города
        daCity = New OleDbDataAdapter("SELECT * FROM tb_Cities", cn)
        'заполняем DataSet
        da.Fill(ds, "tb_Countries";)
        daCity.Fill(ds, "tb_Cities";)
        
'добовляем связь
        Rel = New DataRelation("MyRel", ds.Tables("tb_Countries";).Columns("CoutrID";) _
        , ds.Tables("tb_Cities";).Columns("CoutrID";))
        ds.Relations.Add(Rel)

        ;Dim dvManager As New DataViewManager(ds)
        cn.Close()
        dvR = dvManager.CreateDataView(ds.Tables("tb_Countries";))
        dvR.Table.PrimaryKey = New DataColumn() {dvR.Table.Columns("CoutrID";)}
        dvR.Table.Columns("CoutrID";).AutoIncrement = True
        GridCountry.DataSource = dvR
End Sub

Ответить

Номер ответа: 6
Автор ответа:
 Florin



Вопросов: 4
Ответов: 7
 Профиль | | #6 Добавлено: 23.05.05 13:53
Alex, а где используется сама связь rel, как вывести связанные данные второй таблицы во второй грид?

Ответить

Номер ответа: 7
Автор ответа:
 Alex10



ICQ: 243869817 

Вопросов: 9
Ответов: 8
 Профиль | | #7 Добавлено: 23.05.05 14:18
чтобы вывести данные во 2 грид надо:
1 приданной конструкции он появится как подчиненный грид, записи с плюсиками
2 чтобы все было во втором гриде я делал так надо создать еще один DataView, также присвоить его к гриду, а затем при клике фильтруем DataView.rowfilter

А Rel создаешь так
Dim Rel As DataRelation

А еще попробуй так:
в подчиненном гриде напиши
grid.datamember=Rel

Ответить

Номер ответа: 8
Автор ответа:
 Alex10



ICQ: 243869817 

Вопросов: 9
Ответов: 8
 Профиль | | #8 Добавлено: 23.05.05 17:32
ну че попробовал??
если че пиши!!!

Ответить

Номер ответа: 9
Автор ответа:
 Florin



Вопросов: 4
Ответов: 7
 Профиль | | #9 Добавлено: 24.05.05 10:31
Чет ничего таким способом не запахало. Я там понял, что проблемма в том что нужно сортировать обе таблицы а не одну. Добавил в обе поле с нужным признаком и сортирую обе табл. по этому признаку. Вроде работает :-), жаль что так криво и горбато :-(

Ответить

Страница: 1 |

Поиск по форуму



© Copyright 2002-2011 VBNet.RU | Пишите нам