在 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语句,谢谢了