join af tabeller og vise dem på side
Hej,Jeg har en forespørgsel (som jeg har testet i Access og den virker der), som jeg bare ikke kan få til at virke, når jeg forsøger at køre den i asp.net....
Jeg tror, det er fordi jeg ikke har styr på - hvad der skal stå de forskellige steder, når jeg trækker felterne ud fra databasen, nogen der kan hjælpe?
Koden:
public FStatus GetInvoice(int FakturaID, ref DataTable Invoice)
{
FStatus status = FStatus.Failure;
DataRow r = null;
DataTable AItems = new DataTable();
try
{
AItems.Columns.Add(new DataColumn("FakturaID", Type.GetType("System.String")));
AItems.Columns.Add(new DataColumn("KundeID", Type.GetType("System.String")));
AItems.Columns.Add(new DataColumn("Fakturanr", Type.GetType("System.String")));
AItems.Columns.Add(new DataColumn("Dato", Type.GetType("System.String")));
AItems.Columns.Add(new DataColumn("BetalingsDato", Type.GetType("System.String")));
AItems.Columns.Add(new DataColumn("Porto", Type.GetType("System.String")));
AItems.Columns.Add(new DataColumn("Betalt", Type.GetType("System.String")));
AItems.Columns.Add(new DataColumn("RykkerSendt", Type.GetType("System.String")));
AItems.Columns.Add(new DataColumn("Momssats", Type.GetType("System.String")));
AItems.Columns.Add(new DataColumn("PrisExMoms", Type.GetType("System.String")));
AItems.Columns.Add(new DataColumn("FirmaId", Type.GetType("System.String")));
AItems.Columns.Add(new DataColumn("Navn", Type.GetType("System.String")));
AItems.Columns.Add(new DataColumn("Adresse", Type.GetType("System.String")));
AItems.Columns.Add(new DataColumn("Postnr", Type.GetType("System.String")));
AItems.Columns.Add(new DataColumn("Byen", Type.GetType("System.String")));
AItems.Columns.Add(new DataColumn("OrdreID", Type.GetType("System.String")));
AItems.Columns.Add(new DataColumn("Varenr", Type.GetType("System.String")));
AItems.Columns.Add(new DataColumn("Antal", Type.GetType("System.String")));
command.CommandText = "SELECT Faktura.FakturaID, Faktura.KundeID AS Faktura_KundeID, Faktura.Fakturanr AS Faktura_Fakturanr, Faktura.Dato, Faktura.BetalingsDato, Faktura.Porto, Faktura.Betalt, Faktura.RykkerSendt, Faktura.Momssats, Faktura.PrisExMoms, Kunder.KundeId AS Kunder_KundeId, Kunder.FirmaId, Kunder.Navn, Kunder.Adresse, Kunder.Postnr, Kunder.Byen, Kunder.Telefonnr, Kunder.Mobilnr, Kunder.EmailAdr, Kunder.Noter, Kunder.km, Ordrer.OrdreID, Ordrer.FakturaNr AS Ordrer_FakturaNr, Ordrer.VareNr, Ordrer.Antal, Ordrer.MomsId FROM (Kunder INNER JOIN Faktura ON Kunder.KundeId = Faktura.KundeID) INNER JOIN Ordrer ON Faktura.Fakturanr = Ordrer.FakturaNr WHERE (((Ordrer.FakturaNr)=@FakturaID))";
command.Parameters.Clear();
command.Parameters.Add(new OleDbParameter("@FakturaID", FakturaID));
OleDbDataReader myReader = command.ExecuteReader();
//går gennem tabellen og lægger ind i rækker
while (myReader.Read())
{
r = AItems.NewRow();
try
{
r["FakturaID"] = (myReader["Ordrer.FakturaNr"]);
r["KundeID"] = (myReader["Ordrer.KundeID"]);
r["Fakturanr"] = (myReader["Fakturanr"]);
r["Dato"] = (myReader["Dato"]);
r["BetalingsDato"] = (myReader["BetalingsDato"]);
r["Porto"] = (myReader["Porto"]);
r["Betalt"] = (myReader["Betalt"]);
r["RykkerSendt"] = (myReader["RykkerSendt"]);
r["Momssats"] = (myReader["Momssats"]);
r["PrisExMoms"] = (myReader["PrisExMoms"]);
r["FirmaId"] = (myReader["FirmaId"]);
r["Navn"] = (myReader["Navn"]);
r["Adresse"] = (myReader["Adresse"]);
r["Postnr"] = (myReader["Postnr"]);
r["Byen"] = (myReader["Byen"]);
r["OrdreID"] = (myReader["OrdreID"]);
r["Varenr"] = (myReader["Varenr"]);
r["Antal"] = (myReader["Antal"]);
}
catch
{ }
//Tilføjer rækken til datatable
AItems.Rows.Add(r);
}
myReader.Close();
Invoice = AItems;
status = FStatus.Success;
}
catch
{ }
return status;
}
Exception jeg får er: There is no row at position 0.
Men som sagt, jeg kan køre den nøjagtige SQL sætning i Access og får det ud, jeg skal....
mvh
simsen