Avatar billede brian-johansen Nybegynder
02. juni 2005 - 13:12 Der er 16 kommentarer og
1 løsning

Hent fra database

Hej,

Jeg er ved at lave et C# program, hvor jeg skal kunne indtaste et ordreid. Udfra det ordreid skal man kunne se den tilknyttede kunde. Kunden kan idenficeres via et kunde nr. som er et tlf. nr.

problemet er bare at når jeg fx. indtaster ordrenr. 20, så tror computeren at kundens kundenr er 20 og fx. 78332244.

Her er min sql sætning:
string strSQL = "SELECT * FROM kunde, ordre WHERE kunde.kundenr =" + kundenr_hentet + " AND ordre.kundenr = kunde.kundenr";

Håber der er nogen der kan hjælpe.

mvh Brian
Avatar billede dr_chaos Nybegynder
02. juni 2005 - 13:21 #1
prøv med
SELECT * FROM ordre INNER JOIN kunde ON kunde.kundenr = ordre.kundenr WHERE ordre.ordreid ="+indstastetordreid+"
Avatar billede dr_chaos Nybegynder
02. juni 2005 - 13:22 #2
string strSQL = "SELECT * FROM ordre INNER JOIN kunde ON kunde.kundenr = ordre.kundenr WHERE ordre.ordreid ="+ indstastetordreid ;
Avatar billede dr_chaos Nybegynder
02. juni 2005 - 13:22 #3
hvad ligger du i din kundenr_hentet variabel ?
Avatar billede brian-johansen Nybegynder
02. juni 2005 - 13:27 #4
Den skal laves om til ordrenr_hentet, da det er ordrenr. den henter fra indtastningsboksen. i ordre.cs
Avatar billede dr_chaos Nybegynder
02. juni 2005 - 13:28 #5
virker denne her:
string strSQL = "SELECT * FROM ordre INNER JOIN kunde ON kunde.kundenr = ordre.kundenr WHERE ordre.ordreid ="+ ordrenr_hentet;
Avatar billede brian-johansen Nybegynder
02. juni 2005 - 13:29 #6
er du god til c#
Avatar billede dr_chaos Nybegynder
02. juni 2005 - 13:35 #7
jeg vil ikke kalde mig ekspert men jeg kan til husbehov plus det løse.
Virkede den sql sætning ?
Avatar billede brian-johansen Nybegynder
02. juni 2005 - 13:41 #8
nej ikke helt, jeg for stadig fejlen tilbage.

Men jeg ved ikke om det er i min kode der er noget galt med.

DataTable dataTable;   
string[] kundeoplysning = new string[8];     
string strDSN = "Provider=Microsoft.Jet.OLEDB.4.0;Data Source=c:\\order.MDB";
string strSQL = "SELECT * FROM ordre INNER JOIN kunde ON kunde.kundenr = ordre.kundenr WHERE ordre.ordreid ="+ kundenr_hentet  ;
// create Objects of ADOConnection and ADOCommand
OleDbConnection myConn = new OleDbConnection(strDSN);
OleDbDataAdapter myCmd = new OleDbDataAdapter( strSQL, myConn );
myConn.Open();
DataSet ds = new DataSet();
myCmd.Fill(ds, "kunde");
myCmd.Fill(ds, "ordre");
dataTable = ds.Tables["kunde" + "ordre"];

kundeoplysning[0] = dataTable.Rows[0]["Firma navn"].ToString();
kundeoplysning[1] = dataTable.Rows[0]["adresse"].ToString();
kundeoplysning[2] = dataTable.Rows[0]["by"].ToString();
kundeoplysning[3] = dataTable.Rows[0]["postnr"].ToString();
kundeoplysning[4] = dataTable.Rows[0]["tlfnr"].ToString();
kundeoplysning[5] = dataTable.Rows[0]["email"].ToString();
kundeoplysning[6] = dataTable.Rows[0]["kredit"].ToString();       
return kundeoplysning;


Jeg ved ikke om du kan se hvor fejlen  er
Avatar billede dr_chaos Nybegynder
02. juni 2005 - 13:45 #9
prøv med :
DataTable dataTable;   
string[] kundeoplysning = new string[8];     
string strDSN = "Provider=Microsoft.Jet.OLEDB.4.0;Data Source=c:\\order.MDB";
string strSQL = "SELECT * FROM ordre INNER JOIN kunde ON kunde.kundenr = ordre.kundenr WHERE ordre.ordreid ="+ ordrenr_hentet;
// create Objects of ADOConnection and ADOCommand
OleDbConnection myConn = new OleDbConnection(strDSN);
OleDbDataAdapter myCmd = new OleDbDataAdapter( strSQL, myConn );
myConn.Open();
DataSet ds = new DataSet();
myCmd.Fill(ds, "kunde");
myCmd.Fill(ds, "ordre");
dataTable = ds.Tables["kunde" + "ordre"];

kundeoplysning[0] = dataTable.Rows[0]["Firma navn"].ToString();
kundeoplysning[1] = dataTable.Rows[0]["adresse"].ToString();
kundeoplysning[2] = dataTable.Rows[0]["by"].ToString();
kundeoplysning[3] = dataTable.Rows[0]["postnr"].ToString();
kundeoplysning[4] = dataTable.Rows[0]["tlfnr"].ToString();
kundeoplysning[5] = dataTable.Rows[0]["email"].ToString();
kundeoplysning[6] = dataTable.Rows[0]["kredit"].ToString();       
return kundeoplysning;
Avatar billede brian-johansen Nybegynder
02. juni 2005 - 13:50 #10
humm... jeg for den fejl at der ike er angivet nogen værdi for en eller flere krævede parametre
Avatar billede dr_chaos Nybegynder
02. juni 2005 - 14:18 #11
sætter du ordrenr_hentet  til en værdi?
Avatar billede brian-johansen Nybegynder
02. juni 2005 - 21:10 #12
ja.. jeg har fundet ud af at det er mit sql statement der er et problem
Avatar billede dr_chaos Nybegynder
03. juni 2005 - 07:57 #13
skriv lige hvilke felter der er og hvordan de hænger sammen.
Avatar billede brian-johansen Nybegynder
06. juni 2005 - 09:12 #14
Jeg har fundet en fejl i mine relationer, jeg tjekker lige om det evt. var det

mvh
Avatar billede dr_chaos Nybegynder
06. juni 2005 - 13:34 #15
ok
Avatar billede brian-johansen Nybegynder
07. juni 2005 - 10:06 #16
okay.. det var en fejl i selve databasen, der var nogle skjulte tabler(ved ikke lige hvor de kom fra), men jeg lavet en helt ny og nu fungere det fint,

smider du lige et svar ?
Avatar billede brian-johansen Nybegynder
09. juni 2005 - 09:59 #17
Lukker jeg selv Dr_Chaos du må sige til hvis du vil have de 30 points.
Tak for hjælpen.
mvh
Avatar billede Ny bruger Nybegynder

Din løsning...

Tilladte BB-code-tags: [b]fed[/b] [i]kursiv[/i] [u]understreget[/u] Web- og emailadresser omdannes automatisk til links. Der sættes "nofollow" på alle links.

Loading billede Opret Preview
Kategori
Dyk ned i databasernes verden på et af vores praksisnære Access-kurser

Log ind eller opret profil

Hov!

For at kunne deltage på Computerworld Eksperten skal du være logget ind.

Det er heldigvis nemt at oprette en bruger: Det tager to minutter og du kan vælge at bruge enten e-mail, Facebook eller Google som login.

Du kan også logge ind via nedenstående tjenester