在 ASP.NET Razor Web Pages 中,你可以使用多种方法与数据库进行交互。下面是一种常见的方法,使用 Razor 页面结合 ADO.NET(或 Entity Framework)连接和操作数据库。

使用 ADO.NET 连接数据库:

1. 创建数据库连接:
   在 Razor 页面中,你可以使用 ADO.NET 来创建数据库连接。以下是一个简单的例子,演示如何连接到数据库并执行查询:
   @{
       // 数据库连接字符串
       string connectionString = "YourConnectionString";

       // 创建数据库连接对象
       using (var connection = new System.Data.SqlClient.SqlConnection(connectionString))
       {
           // 打开数据库连接
           connection.Open();

           // 执行 SQL 查询
           var sql = "SELECT * FROM YourTable";
           using (var command = new System.Data.SqlClient.SqlCommand(sql, connection))
           {
               using (var reader = command.ExecuteReader())
               {
                   // 处理查询结果
                   while (reader.Read())
                   {
                       var columnName = reader["ColumnName"].ToString();
                       // 处理数据...
                   }
               }
           }
       }
   }

   请替换 YourConnectionString 和 YourTable 为实际的数据库连接字符串和表名。

2. 参数化查询:
   避免 SQL 注入攻击,使用参数化查询。以下是一个带参数的查询的例子:
   string searchKeyword = "example";
   var sql = "SELECT * FROM YourTable WHERE ColumnName LIKE @SearchKeyword";

   using (var command = new System.Data.SqlClient.SqlCommand(sql, connection))
   {
       command.Parameters.AddWithValue("@SearchKeyword", "%" + searchKeyword + "%");

       using (var reader = command.ExecuteReader())
       {
           // 处理查询结果
       }
   }

使用 Entity Framework 连接数据库:

如果你更喜欢使用 Entity Framework(EF)进行数据访问,可以在 Razor 页面中进行集成。首先,确保你的项目中已经引用了 Entity Framework,并且已经配置好数据上下文类。
@{
    // 创建数据库上下文
    var dbContext = new YourDbContext();

    // 查询数据
    var data = dbContext.YourTable.ToList();
}

@foreach (var item in data)
{
    <p>@item.ColumnName</p>
}

上述代码假设你有一个 YourDbContext 类,它派生自 DbContext,并且有一个 YourTable 属性,表示要查询的数据表。

无论你选择使用 ADO.NET 还是 Entity Framework,都应该注意以下事项:

  •  安全性: 使用参数化查询以防止 SQL 注入攻击。

  •  错误处理: 处理数据库操作可能发生的异常,以便更好地调试和维护代码。

  •  连接管理: 使用 using 语句确保数据库连接正确关闭,以防止资源泄漏。


请根据实际情况选择适合你的数据访问方法。如果你的应用程序更复杂,可能需要使用 ASP.NET MVC 或 ASP.NET Core MVC 提供的模型绑定和数据注入功能。


转载请注明出处:http://www.pingtaimeng.com/article/detail/14851/ASP.NET Razor 标记