Hallo 
zuerst einmal was ich benutze:
-SQL 2008
-Visual C#10
So also ich bin gerade dabei zwei verschiedene Tabellen aus zwei verschiedenen Datenbanken in ein DataSet zu packen, dass ist bis jetzt kein problem.
2 Datatables erstellt und einfach in DataSet gepackt
Nun wollte ich diese beiden Tabellen in eine Relation setzen, das habe ich mittels LINQ gemacht.
Linq hat ja fast die selben Anweisungen, wie bei SQL, deswegen habe ich diesen weg gewählt
DOCH jetzet kommt der Streitpunkt.
Wenn ich bei SQL 2008 Server Manager meine SQL anweisung benutze, läuft alles PIKOBELLO
SQL ANWEISUNG(CODE)
So zeigt er alles an
C# (Code)
Doch hier zeigt er nicht alles an, woran liegt dass ?
Warum zeigt er das in C# weniger an?

zuerst einmal was ich benutze:
-SQL 2008
-Visual C#10
So also ich bin gerade dabei zwei verschiedene Tabellen aus zwei verschiedenen Datenbanken in ein DataSet zu packen, dass ist bis jetzt kein problem.
2 Datatables erstellt und einfach in DataSet gepackt

Nun wollte ich diese beiden Tabellen in eine Relation setzen, das habe ich mittels LINQ gemacht.
Linq hat ja fast die selben Anweisungen, wie bei SQL, deswegen habe ich diesen weg gewählt

DOCH jetzet kommt der Streitpunkt.
Wenn ich bei SQL 2008 Server Manager meine SQL anweisung benutze, läuft alles PIKOBELLO

SQL ANWEISUNG(CODE)
Code:
select [nvarch1] AS KNummer
,[sql_variant1] AS VWZ
,[float1] AS Betrag
,[datetime1] AS Datum
,[int1] AS fa
,[nvarchar2] AS Art
,[sql_variant2] AS [VWZ 2]
,[Nummer]
,[Leitzahl]
,[Name]
from
[DatenbankA].[dbo].[Kunden]
left JOIN
([DatenbankB].[dbo].[Adressen]
inner JOIN
[DatenbankB].[dbo].[Kontodaten]
ON(Adressen.AkID = Kontodaten.AkID))
on(DatenbankA.nvarchar1 = Adressen.ANummer Collate SQL_Latin1_General_CP1_CI_AS) // das muss ich so machen mit Collate sonst gibt es fehler :)
where Adressen.ANummer LIKE '7%%%%' OR Adressen.ANummer LIKE '8%%%%'
order by Adressen.ANummer

C# (Code)
Code:
DataSet result = new DataSet();
A_dataAdapter.Fill(result, "A");
B_dataAdapter.Fill(result, "B");
DataTable A_DT = result.Tables[0];
DataTable B_DT = result.Tables[1];
var innerjoin = from a in A_DT.AsEnumerable()
join b in B_DT.AsEnumerable()
on a["KNummer"] equals b["ANummer"]
orderby a["KNummer"]
select new
{
KNummer = w["KNummer"],
VWZ = w["VWZ"],
Betrag = w["Betrag"],
Datum = w["Datum"],
fa = w["fa"],
Art = w["Art"],
VWZ2 = w["VWZ 2"],
Nummer = a["Nummer"],
Leitzahl = a["Leitzahl"],
Name = a["Name"],
ANummer = a["ANummer"]
};
dataGridView1.DataSource = innerjoin.ToList();
Doch hier zeigt er nicht alles an, woran liegt dass ?
Warum zeigt er das in C# weniger an?