【问题标题】:connect to Access database in asp.net and Join statement在 asp.net 和 Join 语句中连接到 Access 数据库
【发布时间】:2012-10-15 08:04:16
【问题描述】:

假设有一个带有 Access 数据库的 Asp.ne5 3.5 Web 应用程序。数据库有两个这样的表:

在某些页面中,我可以使用“page.users.identity.name”获取用户名。在这个应用程序中,每个用户都可以创建很多页面。我的问题是如何编写语句来获取使用特定用户名(加入的 Group_ID)创建的页面。

注意:这是我尝试过的,但出现“读取数据库错误”。

SELECT Pages.* FROM 
Pages INNER JOIN Users ON Pages.Group_ID = Users.Group_ID
WHERE Users.Username = page.users.identity.name

【问题讨论】:

    标签: asp.net .net asp.net-mvc ms-access


    【解决方案1】:

    您是否尝试过使用参数化查询:

    public ActionResult SomeAction()
    {
        // get the username of the currently connected user
        string username = User.Identity.Name;
    
        string cs = WebConfigurationManager.ConnectionStrings["MyConnStr"].ConnectionString;
        using (var conn = new OleDbConnection(cs))
        using (var cmd = conn.CreateCommand())
        {
            conn.Open();
            var sql = 
                @"SELECT Pages.* FROM Pages 
                  INNER JOIN Users 
                  ON Pages.Group_ID = Users.Group_ID
                  WHERE Users.Username = ?";
            cmd.CommandText = sql;
            cmd.Parameters.AddWithValue("Username", username);
            using (var reader = cmd.ExecuteReader())
            {
                while (reader.Read())
                {
                    ... 
                }
            }
        }
    
        ...
    
    }
    

    【讨论】:

      【解决方案2】:

      试试这个查询,

      SELECT Pages.* FROM 
      Pages,Users where Pages.Group_ID = Users.Group_ID
      and Users.Username = page.users.identity.name
      

      【讨论】:

        【解决方案3】:

        我错过了 page.users.identity.name 语句中的单引号“'”。现在应该是这样的:

        dim lasts as string="'"

        "SELECT Pages.* FROM 
        Pages INNER JOIN Users ON Pages.Group_ID = Users.Group_ID
        WHERE Users.Username ='" &  page.users.identity.name & lasts
        

        【讨论】:

          猜你喜欢
          • 2012-01-12
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          相关资源
          最近更新 更多