2015-01-14 2 views
-1

내 데이터베이스의 3 가지 테이블에서 정보를 가져 오려고합니다. 올바른 쿼리 문자열을 얻는 방법을 모르겠습니다 (2 개의 내부 조인을 사용해야한다고 가정). 나는이 작동하지 않습니다 현재 사용하고쿼리 액세스 데이터베이스 ASP

protected void Page_Load(object sender, EventArgs e) 
{ 
    string connect = "Provider=Microsoft.Jet.OleDb.4.0;Data Source=|DataDirectory|Project.mdb"; 
    string query = //??? 
    try 
    { 
     using (OleDbConnection conn = new OleDbConnection(connect)) 
     { 
      using (OleDbCommand cmd = new OleDbCommand(query, conn)) 
      { 
       conn.Open(); 

       cmd.CommandType = CommandType.Text; 
       cmd.Parameters.AddWithValue("Gebruiker", Session["Gebruikersnaam"]); 
       OleDbDataReader reader = cmd.ExecuteReader(); 

       while (reader.Read()) 
       { 
        string btn_plaats = reader["Appplaats"].ToString(); 

        ImageButton knop = (ImageButton)this.FindControl(btn_plaats); 
        knop.PostBackUrl = "http://www." + reader["Site"]; 
        knop.ImageUrl = reader["Plaatje"].ToString(); 
        knop.OnClientClick = ""; 
       } 
      } 
     } 
    } 
    catch 
    { 

    } 

쿼리 문자열 :

는 코드입니다. 내가 한 것은이었다 내가 가진

SELECT GEBRUIKER.Gebruikersnaam, heeft.Appplaats, heeft.Link, App.Naam, App.Site, App.Plaatje 
FROM GEBRUIKER 
INNER JOIN heeft 
    ON App.[Naam] = heeft.[Link] 
INNER JOIN heeft 
    ON GEBRUIKER [Gebruikersnaam] = heeft.[Gebruiker] 
WHERE [Gebruikersnaam] = @Gebruiker"; 

표가 있었다 :

GEBRUIKER (Gebruikersnaam, Wachtwoord) => username and password 

HEEFT (Appplaats, gebruiker, link) => Place where the app belongs to , User and link (youtube, google etc.) 

APP (Naam, Site, Plaatje) => Name(youtube, google etc (same as Link)) Site and ImageURL 

사람이 적절한 쿼리 문자열을 찾기 위해 나를 도와 드릴까요?

+1

예상되는 결과가 무엇인지, "작동하지 않는"쿼리에 정확히 무엇이 발생하는지에 대해서는 말하지 않습니다. 어쩌면 그 질문에 동기를 부여해서 일자리를 찾을 수 있을까요? ;-) –

+0

'FROM GEBRUIKER INNER JOIN heeft ON 앱 [Naam] = heeft. [링크]'GEBRUIKER에 별칭 앱이 누락 되었습니까? 나는 조인 (inte)에서 또는 조인 (join)에서 테이블을 모두 볼 수 없다 ... 또는 한 번만 나열되어야 할 때 두 번 나열된 ... – xQbert

답변

0

아마도 당신의 선택의 필요가 더 같이합니다 :

  1. 테이블에서 완전히 응용 프로그램 테이블이 없습니다.
  2. 누락되었습니다. GEBRUIKER [Gebruikersnaam] 사이
  3. Heeft에 두 번 가입했는데 이유는 확실하지 않습니다.

.

SELECT g.Gebruikersnaam, h.Appplaats, h.Link, A.Naam, A.Site, A.Plaatje 
FROM GEBRUIKER g 
INNER JOIN heeft h 
    ON g.[Gebruikersnaam] = h.[Gebruiker] 
INNER JOIN App a 
    ON A.[Naam] = h.[Link] 
WHERE g.[Gebruikersnaam] = @Gebruiker"