使用带有razor mvc4的Access数据库

时间:2013-10-06 05:02:20

标签: c# asp.net-mvc-4 razor ms-access-2010

我有一个Microsoft Access数据库(.accdb),其中包含我希望显示在.cshtml razor页面上的表中的值。我需要打开连接,然后使用值创建表。

我认为表格会是这样的:

<table>
        <thead>
            <tr>
                <th>Name</th>
                <th>Address</th>
                <th>Address 2</th>
                <th>Field of Work</th>
            </tr>
        </thead>

       <tbody>
            @foreach (var row in _____.Query(____))
            {
                <tr>
                    <td>@row.name</td>
                    <td>@row.address</td>
                    <td>@row.address2</td>
                    <td>@row.field</td>
                </tr>
            }
        </tbody>
  </table>

,但我无法正确打开连接。

建议吗?

1 个答案:

答案 0 :(得分:3)

如果您使用的是Access,则应将数据库文件放在App_Data中并在web.config文件中指定连接字符串:

<connectionStrings>
    <add name="MyConnection" 
      connectionString="Provider="Microsoft.ACE.OleDb.12.0;Data Source=|DataDirectory|MyDatabase.accdb;" 
      providerName="System.Data.OleDb" />
</connectionStrings>

|DataDirectory|是一个特殊的快捷方式,可以解析为App_Data文件夹的位置。

使用数据库帮助程序时,传入连接字符串的名称:

var db = Database.Open("MyConnection");
var data = db.Query("SELECT * FROM MyTable");
...
...
<tbody>
    @foreach (var row in data){
        <tr>
            <td>@row.name</td>
            <td>@row.address</td>
            <td>@row.address2</td>
            <td>@row.field</td>
        </tr>
    }
</tbody>

但是,如果您使用的是MVC,则不应在视图中进行数据库打开和查询。您应该在控制器中执行此操作,或者更好地在数据层中执行此操作。或者,您可以查看数据访问代码确实属于视图的ASP.NET网页:http://asp.net/web-pages