查询Access数据库ASP

时间:2015-01-14 12:57:59

标签: sql ms-access

我正在尝试从数据库中的3个不同表中获取信息。我不知道如何获得正确的查询字符串(我假设我必须使用2个内连接)。

这是代码:

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 :(得分:0)

也许您的选择需要看起来更像这样:

  1. 完全从表中删除app表。
  2. 失踪。 GEBRUIKER之间[Gebruikersnaam]
  3. 两次加入Heeft ......不确定原因。
  4. 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"