Avatar billede kongen72 Nybegynder
30. juli 2009 - 09:21 Der er 11 kommentarer og
1 løsning

Inner join - forbinde tabeller

Hej..

Jeg har lidt problemer med inner join, jeg vil gerne skabe forbindelse med 2 tabeller til mit gridview. Men ved ikke helt præcis hvordan det skal udføres. I mit gridview skal der være kolonnerne: ProId, Username, Status, Team. Håber nogle kan hjælpe mig!

Lige nu har jeg bare følgende:

<asp:SqlDataSource ID="SqlDataSource1" runat="server" ConnectionString="<%$ ConnectionStrings:ConnectionString1 %>" OldValuesParameterFormatString="original_{0}"
SelectCommand="
SELECT [ProId}, [ProUsername]
FROM [form_Pro]
INNER JOIN [form_End]
ON form_Pro.ProId = ??">
</asp:SqlDataSource>

<asp:GridView ID="GridView1" runat="server" AutoGenerateColumns="False" DataSourceID="SqlDataSource1">
<Columns>
<asp:BoundField DataField="ProId" HeaderText="ProId" SortExpression="ProId" /> 
<asp:BoundField DataField="ProUsername" HeaderText="Username" SortExpression="Username" />
<asp:BoundField DataField="EndStatus" HeaderText="Status" SortExpression="Status" />
<asp:BoundField DataField="EndTeam" HeaderText="Team" SortExpression="Team" /> 
</Columns>
</asp:GridView>

Tak på forhånd..
Avatar billede softspot Forsker
30. juli 2009 - 10:02 #1
Noget i stil med:

<asp:SqlDataSource ID="SqlDataSource1" runat="server" ConnectionString="<%$ ConnectionStrings:ConnectionString1 %>" OldValuesParameterFormatString="original_{0}"
SelectCommand="
SELECT form_Pro.ProId, form_Pro.Username, form_End.Team, form_End.Status
FROM form_Pro
INNER JOIN [form_End]
ON form_Pro.ProId = form_End.ProId">
</asp:SqlDataSource>
Avatar billede kongen72 Nybegynder
30. juli 2009 - 21:19 #2
Hej softpot..

jeg får denne fejl: System.Data.SqlClient.SqlException: Invalid column name 'ProId'
Avatar billede softspot Forsker
30. juli 2009 - 21:33 #3
ok, men humlen i mit eksempel er, at den kolonne der binder de to tabeller sammen, skal benyttes i stedet for form_End.ProId.

Jeg ved at gode grunde ikke hvilke andre felter du har i dine tabeller, så jeg var nød til at antage, at den kolonne hed ProId (det vile i det mindste være et sigende og intuitivt navn ;-)).
Avatar billede kongen72 Nybegynder
30. juli 2009 - 22:13 #4
har kun de felter som jeg har beskrevet. -også har jeg tilføjet ProId i form_End! hader bare når tingene ikke virker!! ;-)
Avatar billede softspot Forsker
30. juli 2009 - 22:41 #5
Hvis du vil lave en join mellem to tabellers data, er du nød til at have mindst én kolonne der binder data sammen, dvs. en fremmednøgle som peger på noget i den anden tabel. Hvilket felt/kolonne i form_End peger på en række i form_Pro?
Avatar billede kongen72 Nybegynder
30. juli 2009 - 23:16 #6
Det forstår jeg ikke helt.. Kan du give et eksempel?
Avatar billede softspot Forsker
31. juli 2009 - 14:32 #7
For at kunne lave en join mellem to tabellen skal man typisk bruge en information (en kolonne) i hver tabel der binder de to tabellers data sammen. Hvis du f.eks. kigger på et klassisk eksempel med postnumre, så kunne følgende data

person_tabel =
  navn +
  postnr

postnr_tabel =
  postnr +
  bynavn



joines på følgende måde:

select
  person_tabel.navn,
  person_tabel.postnr,
  postnr_tabel.bynavn
from
  person_tabel
  inner join postnr_tabel
      on postnr_tabel.postnr = person_tabel.postnr



postnr i de to tabeller er altså den kolonne der binder data sammen og følgende data:

person_tabel:
persona    6000
personb    7000
personc    7100
persond    7000

postnr_tabel:
6000      Kolding
7000      Fredericia
7100      Vejle



ville med SQL fra eksemplet give følgende resultat:

persona    6000 Kolding
personb    7000 Fredericia
personc    7100 Vejle
persond    7000 Fredericia


Jeg håber det kaster lidt lys over hvad jeg snakker om... :-)
Avatar billede kongen72 Nybegynder
03. august 2009 - 21:47 #8
mange tak, dejligt eksempel..:-) svar?
Avatar billede softspot Forsker
03. august 2009 - 22:03 #9
Velbekomme :-)
Avatar billede kongen72 Nybegynder
03. august 2009 - 22:25 #10
Hej igen.. har du nogle gode idéer til, hvordan man tilføjer den samme data til 2 tabeller? tak!
Avatar billede softspot Forsker
03. august 2009 - 22:33 #11
Hvad tænker du mere specifikt på (giv gerne nogle eksempler på hvad du vil opnå)?
Avatar billede softspot Forsker
03. august 2009 - 22:33 #12
Tak for point i øvrigt :-)
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
IT-kurser om Microsoft 365, sikkerhed, personlig vækst, udvikling, digital markedsføring, grafisk design, SAP og forretningsanalyse.

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