ich hatte LL21 in Betrieb und dieses wie folgt implementiert:
Dim command1 As New SqlCommand("SELECT * FROM dbo.Auftrag WHERE dbo.Auftrag.ID=" & iID.ToString, conn)
Dim command2 As New SqlCommand("SELECT dbo.AuftragLadestellen.*, dbo.AuftragProdukte.* FROM dbo.AuftragLadestellen LEFT JOIN dbo.AuftragProdukte ON dbo.AuftragLadestellen.LadestelleNr = dbo.AuftragProdukte.LadestelleID WHERE (((dbo.AuftragLadestellen.AuftragID)=" & iID.ToString & ") AND ((dbo.AuftragLadestellen.IsLadeort)='True'))", conn)
Dim command3 As New SqlCommand("SELECT dbo.AuftragLadestellen.*, dbo.AuftragProdukte.* FROM dbo.AuftragLadestellen LEFT JOIN dbo.AuftragProdukte ON dbo.AuftragLadestellen.LadestelleNr = dbo.AuftragProdukte.EntladestelleID WHERE (((dbo.AuftragLadestellen.AuftragID)=" & iID.ToString & ") AND ((dbo.AuftragLadestellen.IsLadeort)='False'))", conn)
Dim MyCommandDataSetProvider = New DbCommandSetDataProvider
MyCommandDataSetProvider.AddCommand(command1, "Vorgang")
MyCommandDataSetProvider.AddCommand(command2, "Ladestellen")
MyCommandDataSetProvider.AddCommand(command3, "Entladestellen")
MyCommandDataSetProvider.AddRelation("Vorgang2Ladestellen", "Vorgang", "Ladestellen", "ID", "AuftragID")
MyCommandDataSetProvider.AddRelation("Vorgang2Entladestellen", "Vorgang", "Entladestellen", "ID", "AuftragID")
Unter LL 21 funktioniert das ohne Probleme.
Nun jetzt unter LL25 funktioniert es nicht mehr. Es kommt ein Fehler.
Fehler in der Datenquelle
Was hat sich hier geändert?
Muss ich etwas im SQL Umstellen?
direkt in der Vorschau. Wenn ich auf Design gehe. Lädt sich der Designer ohne Fehler. Schalte ich im Designer auf Vorschau um, kommt die Meldung
"Mehrdeutiger Spaltenname ‘AuftragID’.
Ich vermute das Problem in den JOIN-Statements. Sie könnten einmal folgende Dinge ausprobieren:
setzen Sie für den Provider die Eigenschaft UseLegacyRegexSqlTokenizer auf true. Diese ist vor dem Intellisense verborgen.
alternativ könnten Sie auch einmal die Eigenschaft MinimalSelect des Providers auf false setzen.
Bitte prüfen Sie einmal, ob eine dieser beiden Änderungen hilft. Ansonsten wäre es vielleicht das Beste, das über den Support zu klären - dann könnten wir auch mal die tatsächlich abgesetzten Queries analysieren und so detailliert schauen, was das Problem verursachen könnte.
Das Ergebnis dieser Abfrage, dürfte für beide Tabellen eine Spalte mit AuftragID haben, welche LuL als uneindeutig identifiziert.
Lösung ist, dass man für eine der Tabellen die splaten alle ausschreibt und AuftragID weglässt, sodass im Endergebnis nur eine Spalte mit dem Namen AuftragID vorkommt.
Alternativ, z.B. wenn sich die AuftragIDs unterscheiden, kann man ein Alias verwenden wie zum Beispiel dbo.AuftragLadestelle.AuftragID As AuftragID_Ladestelle