webForumDet fria alternativet

DataRelation problem...(C#)

4 svar · 245 visningar · startad av Bjuris

BjurisMedlem sedan juli 2001514 inlägg
#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?

NöffMedlem 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.

BjurisMedlem 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?

NöffMedlem 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.

BjurisMedlem 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?

132 ms totalt · 3 externa anrop · v20260731065814-full.30151723
0 ms — hämta forumlista (cache)
0 ms — hämta statistik (cache)
129 ms — hämta tråd, inlägg och bilagor (db)