Hallo,
ich habe eine Datenbankabfrage erstellt.
Eine Eigenschaft (Version), die ich nun gerne füllen möchte, sollte ich dazu aus einer ANDEREN Datenbank abrufen.
Wie kann ich dies entsprechend einbauen?
var query = from a in ctx.tblartikel
select new Artikel
{
ArtikelNr = a.Nummer
ArtikelName = a.Bezeichnung
// hier => Version = DB.VersionAbrufen(a.Nummer)
};
DataTable tbl = IEnumerableToDataTable.ToDataTable(query.ToList());
return tbl;
public static string VersionAbrufen(string sNummer)
{
try
{
using (xxx ctx = new xxx())
{
var query = "SELECT MAX(version) AS Version " +
"FROM dataparts p " +
"WHERE p.number= " + sNummer +
" AND p.type = 'a'";
return ctx.ExecuteStoreQuery<String>(query).FirstOrDefault();
}
}
catch (Exception ex)
{
return string.Empty;
}
}
Verwendetes Datenbanksystem: <MySQL>
Das nennt sich Cross Database Join und wird in ADO.NET (und damit allem drüber) nicht unterstützt.
Daher auch nicht möglich.
Native kann das zumindest der MSSQL über ne Stored Proc; aber auch nur, wenn die andere DB auf dem selben Server liegt.
mySQL no idea.
Ansonsten der Hinweis, dass Du SQL Code genau so schreibt, wie man es nicht tun sollte.
[Artikelserie] SQL: Parameter von Befehlen
- performance is a feature -
Microsoft MVP - @Website - @AzureStuttgart - github.com/BenjaminAbt - Sustainable Code