문제

(playerListTableAdapter.GetHeight(sortedPlayers[counter])

"Sorted Players" is an array of decimals, which match primary keys.

When I call the query GetHeight, I get the following error: "ConstraintException was unhandled: Failed to enable constraints. One or more rows contain values violating non-null, unique, or foreign-key constraints."

The SQL statement for the query is:

SELECT        Height
FROM            PlayerList
WHERE        (Number = @PlayerID)

Note: In the database, Number is a primary key.

When we step through the execution, we can see that sortedPlayers[counter] does match a player in the database.

Any ideas on what causes this error?

Thanks!

-Dominique

도움이 되었습니까?

해결책 3

After fighting to get the query working, I discovered that I could access the value more directly by using the following syntax:

decimal? Player1Hgt = dsPlayerTeam.PlayerList.Rows.Find(sortedPlayers[counter]).Field<decimal?>("Height");

This allowed me to go pull the value from the database without using the tableAdapter query and is significantly simpler.

Incidentally, I did attempt to set the EnforceConstraints property of my tableAdapter to false, but it still threw the error.

Thank You for your help!

다른 팁

You add your primary key in your query

SELECT       YourPrimaryKey, Height
FROM            PlayerList
WHERE        (Number = @PlayerID)

To solve this you can set EnforceConstraints to false on the DataTable.

EplayerListTableAdapter.EnforceConstraints = false;

A more detailed answer is here: http://social.msdn.microsoft.com/forums/en-US/adodotnetdataproviders/thread/c2c9158d-cddf-40cf-bf6c-794dc3ef9c7f/

라이센스 : CC-BY-SA ~와 함께 속성
제휴하지 않습니다 StackOverflow
scroll top