22. maj 2016 - 19:22Der er
5 kommentarer og 1 løsning
MSSql inner join
Jeg har søgt lidt rundt på siden men jeg kan ikke finde en løsning til mit problem.
når jeg bruger den her så virker den fint nok den henter række 2 i tabellen tbl_Bruger og henter alt det som den skal SELECT tblBruger.fldBrugernavn, tblBruger.fldRolle_fk, tblBruger.fldEmail, tblRolle.fldRolle FROM tblBruger INNER JOIN tblRolle ON tblBruger.fldRolle_fk=tblRolle.fldId WHERE tblBruger.fldId=2
Men når jeg bruger den her hvor jeg har skiftet tblBruger.fldId=2 ud med tblBruger.fldId=@id så virker den ikke hvad gør jeg galt??
SELECT tblBruger.fldBrugernavn, tblBruger.fldRolle_fk, tblBruger.fldEmail, tblRolle.fldRolle FROM tblBruger INNER JOIN tblRolle ON tblBruger.fldRolle_fk=tblRolle.fldId WHERE tblBruger.fldId=@Id
Når du anvender en konstruktion som @id i en SQL-sætning, anvender du typisk parametre, så spørgsmålet er, hvordan du kalder denne SQL. Kan du vise koden der kalder?
jeg har lige fundetud af at jeg ikke skal bruge where fordi jeg skal have listet en tabel med alle brugere og ikke kun 1 :D men jeg har et andet problem jeg får kun tallet på brugeren rolle.
jeg har joinet tabel rolle med tabel brugere og jeg får hele tiden fldRolle_fk tallet ud som er tallet på den rolle brugeren har. måske det er nemmere at vise :D
min metode: som henter fra begge tabeller: //TESTER LIGE public DataTable BrugerOgRolle() { cmd = new SqlCommand(@"SELECT tblRolle.fldId, tblRolle.fldRolle, tblBruger.fldRolle_fk, tblBruger.fldBrugernavn, tblBruger.fldEmail FROM tblRolle RIGHT JOIN tblBruger ON tblRolle.fldId=tblBruger.fldRolle_fk"); //cmd.Parameters.AddWithValue("@id", _id); return DA.GetData(cmd); }
og den foreach loop jeg bruger til at vise det med DataTable dt_brugere = objBrugere.BrugerOgRolle(); litBrugere.Text += "<th>Navn</th>"; litBrugere.Text += "<th>Email</th>"; litBrugere.Text += "<th>Rolle</th>"; litBrugere.Text += "<th>Handling</th>"; litBrugere.Text += "<th>Handling</th>"; foreach (DataRow dr_bruger in dt_brugere.Rows) { if (Convert.ToInt32(dr_bruger["fldRolle_fk"].ToString()) == 1) { litBrugere.Text += "<tr>"; litBrugere.Text += "<td>"; litBrugere.Text += dr_bruger["fldBrugernavn"].ToString(); litBrugere.Text += "</td>";
Ja, det er også min erfaring, at det at formulere et problem kan være et skridt på vejen til at løse det.
Synes godt om
Ny brugerNybegynder
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.