Am o setare destul de standard de tabel într-o aplicație curentă utilizând .NET XSD DataSet
și TableAdapter
. Tabelul meu contracte
constă dintr-o informație standard a contractului, cu o coloană pentru departamentul principal
. Această coloană este o cheie străină în tabelul meu Departments
, în care stochez codul de bază
, id
, notes
. Toate acestea sunt setate și funcționează în SQL Server .
Când folosesc instrumentul XSD, pot glisa simultan ambele tabele și detectează / creează automat cheia străină pe care o am între aceste două tabele. Acest lucru funcționează minunat când sunt pe pagina mea principală și văd datele contractului.
Totuși, când mă duc la pagina mea administrativă pentru a modifica datele departamentului. De obicei, fac ceva de genul:
Dim dtDepartment As New DepartmentDataTable()
Dim taDepartment As New DepartmentTableAdapter()
taDepartment.Fill(dtDepartment)
Cu toate acestea, în acest moment o excepție este aruncată spunând că există o referință de cheie străină ruptă aici, cred că, deoarece nu am codul Contract
DataTable
umplut.
Cum pot remedia această problemă? Știu că pot elimina cheia străină din XSD pentru a face lucrurile să funcționeze bine, dar având verificarea integrității suplimentare acolo și având schema XSD care se potrivește cu schema SQL din baza de date este bună.
Puteți încerca să dezactivați verificarea constrângerilor în DataSet (este în proprietățile sale) sau să modificați proprietățile acelei relații și să schimbați cheia la o referință simplă - până la dvs.