Hallo,
ich versuche gerade mich in List & Labels 20 einzuarbeiten. Dabei möchte ich aus einer bestehenden MS SQL Datenbank Daten abrufen und in Relation setzen. Dabei erhalte ich immer eine IndexOutOfRangeException die ich mir nicht erklären kann. Ich habe mal ein einfaches Beispiel erstellt mit dem das gleiche Problem auftritt:
CREATE TABLE [dbo].[Address](
[nId] [int] IDENTITY(1,1) NOT NULL,
[sStreet] [nvarchar](50) NOT NULL,
[sCity] [nvarchar](50) NOT NULL,
[nPersonId] [int] NOT NULL
)
CREATE TABLE [dbo].[Person](
[nId] [int] IDENTITY(1,1) NOT NULL,
[sName] [nvarchar](50) NULL
)
Bei diesen beiden Tabellen würde ich jetzt gerne eine Liste mit allen Adressen ausgeben, wobei auch der Name der Person enthalten ist. Soweit ich das jetzt im Selbststudium verstanden habe, muss ich um dies zu erreichen folgenden Code verwenden:
var personCommand = connection.CreateCommand();
personCommand.CommandText = "SELECT * FROM [Person]";
var addressCommand = connection.CreateCommand();
addressCommand.CommandText = "SELECT * FROM [Address]";
var providerWithRelations = new DbCommandSetDataProvider();
providerWithRelations.AddCommand(personCommand, "Person");
providerWithRelations.AddCommand(addressCommand, "Address");
providerWithRelations.AddRelation("Person2Address", "Person", "Address", "[nId]", "[nPersonId]");
Wenn ich nun den Designer mit dem Provider starte, erhalte ich eine IndexOutOfRangeException. Für die Spaltennamen der Relation habe ich schon verschiedene Varianten mit und ohne Klammern getestet.
Hat jemand eine Idee wie ich dies lösen kann oder ob es eine bessere Möglichkeit gibt, ohne die Datenbank zu verändern? Fremdschlüssel-Beziehungen kann ich leider nicht einführen.
Mit freundlichen Grüßen
Moshe Schmidt