在 asp.net 和 Join 语句中连接到 Access 数据库

Posted

技术标签:

【中文标题】在 asp.net 和 Join 语句中连接到 Access 数据库【英文标题】:connect to Access database in asp.net and Join statement 【发布时间】: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

【问题讨论】:

【参考方案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

【讨论】:

以上是关于在 asp.net 和 Join 语句中连接到 Access 数据库的主要内容,如果未能解决你的问题,请参考以下文章

谁能帮忙提供详细的在ThinkPHP中连表查询的SQL语句,谢谢了

如何在 C# Asp.net MVC 中创建 websocket 客户端?

在 Excel 中连接到 Access 查询都有哪些限制

如何在 PL/SQL 中连接到另一个用户

在安全服务器中连接到 MongoDB

在 C# 中连接到 SQL Server 时出现问题