verwendetes Datenbanksystem:
Access, OleDB
Guten Abend,
ich habe da ein problem mit einem SQL-Statement.
Wenn die DB, auf die ich zugreife auf dem localen Rechner liegt, geht das.
SELECT DISTINCT M_Mieter.MI_Name1,M_Mieter.MI_Vorname1,M_Mieter.MI_Straße,M_Mieter.MI_PLZ, M_Mieter.MI_Ort, M_Mieter.MI_Mail FROM M_Mieter WHERE M_Mieter.MI_Nummer IN (SELECT tblMieter.MI_Nummer FROM tblMieter IN 'D:\\Villa\\Daten\\Daten.mdb' WHERE tblMieter.MI_MA_zlr = 47 AND tblMieter.MI_OB_zlr = 53);
Problematisch wird es allerdings, wenn der Pfad im Netzwerk auf einem Rchner liegt.
z.B. \Master\D\Villa\Daten\Daten.mdb
Durch die doppelten Backslashes im Statement werden die vom "\Master" nicht richtig erkannt.
Was kann ich da tun?
Ich hab's jetzt nicht ausprobiert, aber müsste es nicht reichen, wenn du entweder ein @ vor deinen Statement-String setzt bzw. vier \ nimmst?
also so:
string statement = @"SELECT DISTINCT M_Mieter.MI_Name1,M_Mieter.MI_Vorname1,M_Mieter.MI_Straße,M_Mieter.MI_PLZ, M_Mieter.MI_Ort, M_Mieter.MI_Mail FROM M_Mieter WHERE M_Mieter.MI_Nummer IN (SELECT tblMieter.MI_Nummer FROM tblMieter IN '\\Master\D\Villa\Daten\Daten.mdb' WHERE tblMieter.MI_MA_zlr = 47 AND tblMieter.MI_OB_zlr = 53)";
//bzw
string statement = "SELECT DISTINCT M_Mieter.MI_Name1,M_Mieter.MI_Vorname1,M_Mieter.MI_Straße,M_Mieter.MI_PLZ, M_Mieter.MI_Ort, M_Mieter.MI_Mail FROM M_Mieter WHERE M_Mieter.MI_Nummer IN (SELECT tblMieter.MI_Nummer FROM tblMieter IN '\\\\Master\\D\Villa\\Daten\\Daten.mdb' WHERE tblMieter.MI_MA_zlr = 47 AND tblMieter.MI_OB_zlr = 53)";
Wenn ich nicht hier bin, findest du mich auf code-bude.net.
Wieso nimmst du keine Parameter? Erstens wird dir das sowieso gleich jemand ans Herz legen und zweitens müsste es damit problemlos funktionieren.
Wieso nimmst du keine Parameter? Erstens wird dir das sowieso gleich jemand ans Herz legen ...
So ist es. Siehe [Artikelserie] Parameter von SQL Befehlen
Aber das Problem könnte trotzdem die Bezeichnung der Tabelle sein. Für die Angabe der Datenbank gibt es schließlich den ConnectionString mit der DbConnection-Klasse, hier: OleDbConnection. Beispiele gibt es unter connectionstrings - bitte die Access-Version beachten.
Jürgen