2015-01-14 86 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 App。[Naam] = heeft。[Link]'是GEBRUIKER缺少一个别名App?我没有看到表中列出的所有内容来自或来自联合...或者当它只应列出一次时列出两次... – 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"