Sie waren vorher mit meinen anderen Fragen ausgezeichnet - also hier bin ich wieder, brauche etwas Hilfe!Stark typisierte Datenmenge füllt sich nicht, Tabellenzuordnungsproblem? C# .net 2.0
Ich habe eine Abfrage, die drei Tabellen und eine stark typisierte Datenmenge, die die Spalten für alles, was aus der Abfrage zurückgibt, definiert hat. Wenn ich den Datenadapter ausfülle, wird nichts gefüllt. Ich habe den Code von einer anderen Methode kopiert, also nehme ich an, dass es in Ordnung ist - der einzige Unterschied besteht darin, dass diese Abfrage Joins enthält. Jede Hilfe dankbar, Code folgt:
Abfrage:
select gsh.locid, locations.description, GSH.workorder, GSH.comstatus, GSH.teststatus, GSH.fireresult, GSH.lightresult, GSH.watercold, GSH.waterhot, GSH.responsedate, GSH.comments, GSH.testername from gsh_vhs_locations locs left outer join locations on locs.maximoloc = locations.location left outer join gsh_vhs_comms GSH on locs.LOCID = GSH.locid where gsh.insertdate > sysdate-7 order by locid, locations.description, GSH.workorder, GSH.comstatus, GSH.teststatus, GSH.fireresult, GSH.lightresult, GSH.watercold, GSH.waterhot, GSH.responsedate, GSH.comments, GSH.testername
Code:
ResponseSheet Tests = new ResponseSheet();
DataSet ReturData = new DataSet();
OracleDataAdapter da;
try
{
using (OracleConnection conn = new OracleConnection(ConnString))
{
conn.Open();
OracleCommand cmd = new OracleCommand();
cmd.Connection = conn;
cmd.CommandText = @"select gsh.locid, locations.description, GSH.workorder, GSH.comstatus, GSH.teststatus, GSH.fireresult, GSH.lightresult, GSH.watercold, GSH.waterhot, GSH.responsedate, GSH.comments, GSH.testername
from gsh_vhs_locations locs
left outer join locations on locs.maximoloc = locations.location
left outer join gsh_vhs_comms GSH on locs.LOCID = GSH.locid
where gsh.insertdate > sysdate-7
order by locid, locations.description, GSH.workorder, GSH.comstatus, GSH.teststatus, GSH.fireresult, GSH.lightresult, GSH.watercold, GSH.waterhot, GSH.responsedate, GSH.comments, GSH.testername ";
da = new OracleDataAdapter(cmd.CommandText, conn);
da.MissingMappingAction = MissingMappingAction.Error;
da.TableMappings.Add("Table", "ResponseSheet");
da.Fill(ReturData, "ResponseSheet");
}
}
catch (Exception ex)
{
Console.WriteLine(TimeStamp() + ex.Message.ToString() + "Get Capture Report (TraceCode: 00019)");
}
return ReturData;
}
Wie Sie sehen können, habe ich die Fehlerberichterstattung für Tabellenzuordnungen gedreht auf, aber ich bekomme keine Fehler zur Laufzeit, nur ein leerer Datensatz (da = null)
Alles, was Sie mit den Jungs helfen kann, stecken nur zufällige Google-Sätze auf mich, wenn es sein muss - dank :)
Gareth
Und Sie haben überprüft, dass Abfrage tatsächlich Daten zurückgibt, ja? – Dave
yep Ich laufe es in Kröte und es holt zurück, was ich brauche. guter Punkt, aber Sie haben mich dazu gebracht, überprüfen zu gehen! – Gareth
Um sicherzustellen, dass alles koscher ist, empfiehlt es sich, cmd.ExecuteNonQuery auszuführen und den Rückgabewert zu überprüfen, um sicherzustellen, dass Zeilen gelesen werden. –