webForumDet fria alternativet
Logga in / Bli medlem

DataRelation problem...(C#)

.NET

4 svar · 247 visningar · startad av Bjuris

Medlem sedan juli 2001514 inlägg
Trådstart#1

Har problem med DataRelation i c#

Det fungerar fint när jag inte har några kriterier i mina sql sökningar som jag sendan relaterar med varandra med DataRelation.

Detta fungerar:

SqlDataAdapter customerAdapter		= new SqlDataAdapter("Select idCustomer, CustomerName from Customer WHERE CustomerName LIKE '"+CustName+"%' ORDER by CustomerName", dbConn);
SqlDataAdapter locationAdapter		= new SqlDataAdapter("Select * from OfficeLocation", dbConn);
SqlDataAdapter contactAdapter		= new SqlDataAdapter("Select * from Contact", dbConn);
SqlDataAdapter ApplicationAdapter	= new SqlDataAdapter("Select * from Applications", dbConn);
			
customerAdapter.Fill(thisDataSet, "Customers");
locationAdapter.Fill(thisDataSet, "Location");
contactAdapter.Fill(thisDataSet, "Contact");
ApplicationAdapter.Fill(thisDataSet, "Application");

    DataRelation CustLocRel	=	dsResult.Relations.Add("CustLoc", dsResult.Tables["Customers"].Columns["idCustomer"], dsResult.Tables["Location"].Columns["idCustomer"]);
    DataRelation LocConRel	=	dsResult.Relations.Add("LocCon", dsResult.Tables["Location"].Columns["idOffice"], dsResult.Tables["Contact"].Columns["idOfficeLocation"]);
    DataRelation LocApplRel	=	dsResult.Relations.Add("LocAppl", dsResult.Tables["Location"].Columns["idOffice"], dsResult.Tables["Application"].Columns["idOfficeLocation"]);

Men om jag lägger till ett kritera i den första SQL frågan

SqlDataAdapter customerAdapter		= new SqlDataAdapter("Select idCustomer, CustomerName from Customer ORDER by CustomerName", dbConn);SqlDataAdapter locationAdapter		= new SqlDataAdapter("Select * from OfficeLocation", dbConn);
SqlDataAdapter contactAdapter		= new SqlDataAdapter("Select * from Contact", dbConn);
SqlDataAdapter ApplicationAdapter	= new SqlDataAdapter("Select * from Applications", dbConn);

Så får jag följande felmeddelande:

This constraint cannot be enabled as not all values have corresponding parent values.

Description: An unhandled exception occurred during the execution of the current web request. Please review the stack trace for more information about the error and where it originated in the code.

Exception Details: System.ArgumentException: This constraint cannot be enabled as not all values have corresponding parent values.

Någon som kan hjälpa mig?

Medlem sedan nov. 2003569 inlägg
#2

du får felmeddelandet eftersom du försöker fylla datatable nr:2 som har parent values i datatable nr 1 och eftersom du gör ett sökkriteria på tabell nr:1 så kommer vissa parent att fattas.

Medlem sedan juli 2001514 inlägg
#3

Har nästan förstått att det ligger till på något liknande sätt, men hur skall jag lösa det?

Medlem sedan nov. 2003569 inlägg
#4

hämta alltihopa, det är det enklaste, det är så det är tänkt att fungera med dataset. Eller så kan du med hjälp av WHERE hämta exakt det du vill, men då måste du vara nogrann med att du hämta ALLA relationer och sådant till ALLA relaterade datatables.

Medlem sedan juli 2001514 inlägg
#5

I så fal måste jag hålla på och joina olika tabeller i frågorna och det var ju lite därför jag använder Relations för att just slippa det.

...eller finns det andra sätt?

385 ms totalt · 4 externa anrop · v20260731065814-full.51f67c91
124 ms — deklarationer (db)
115 ms — hämta statistik (db)
136 ms — hämta tråd, inlägg och bilagor (db)
131 ms — ändringar (db)