如何编写ASP.NET数据库查询代码?C实现示例详解

在 ASP.NET 中执行数据库查询有多种方式,以下是常见的几种方法及代码示例:

asp.net数据库查询代码

使用 ADO.NET(原生数据库访问)

// 连接字符串(通常放在Web.config中)
string connectionString = "Server=.;Database=YourDB;Integrated Security=True;";
using (SqlConnection conn = new SqlConnection(connectionString))
{
    string query = "SELECT * FROM Users WHERE Age > @Age";
    SqlCommand cmd = new SqlCommand(query, conn);
    cmd.Parameters.AddWithValue("@Age", 18);
    conn.Open();
    SqlDataReader reader = cmd.ExecuteReader();
    while (reader.Read())
    {
        string name = reader["Name"].ToString();
        int age = Convert.ToInt32(reader["Age"]);
        // 处理数据...
    }
    reader.Close();
}

使用 Entity Framework Core(ORM)

安装 NuGet 包:

  • Microsoft.EntityFrameworkCore.SqlServer
  • Microsoft.EntityFrameworkCore.Design
// 定义实体类
public class User
{
    public int Id { get; set; }
    public string Name { get; set; }
    public int Age { get; set; }
}
// DbContext类
public class AppDbContext : DbContext
{
    public DbSet<User> Users { get; set; }
    protected override void OnConfiguring(DbContextOptionsBuilder options)
        => options.UseSqlServer("Server=.;Database=YourDB;Integrated Security=True;");
}
// 在Controller或服务中使用
using (var context = new AppDbContext())
{
    // 查询所有年龄大于18的用户
    var users = context.Users
                .Where(u => u.Age > 18)
                .ToList();
    // 异步查询示例
    var usersAsync = await context.Users
                         .Where(u => u.Name.Contains("John"))
                         .ToListAsync();
}

使用 Dapper(轻量级ORM)

安装 NuGet 包: Dapper

asp.net数据库查询代码

using Dapper;
string connectionString = "Server=.;Database=YourDB;Integrated Security=True;";
using (SqlConnection conn = new SqlConnection(connectionString))
{
    // 简单查询
    var users = conn.Query<User>("SELECT * FROM Users WHERE Country = @Country", 
                  new { Country = "USA" });
    // 多参数查询
    var filteredUsers = conn.Query<User>(
        "SELECT * FROM Users WHERE Age > @MinAge AND Active = @IsActive",
        new { MinAge = 21, IsActive = true }
    );
}

参数化查询(防止SQL注入)

// ADO.NET 参数化
cmd.Parameters.AddWithValue("@param", value);
// EF Core 自动参数化
var user = context.Users.FirstOrDefault(u => u.Email == email);
// Dapper 参数化(如上例)

最佳实践建议:

  1. 连接管理:始终使用 using 语句确保连接关闭
  2. 配置分离:将连接字符串存储在 appsettings.jsonWeb.config
    // appsettings.json
    "ConnectionStrings": {
      "DefaultConnection": "Server=.;Database=MyDB;Trusted_Connection=True;"
    }
  3. 异步操作:在高并发场景使用异步方法(ExecuteReaderAsync, ToListAsync
  4. 错误处理:添加 try-catch 处理数据库异常

Web.config 连接字符串配置示例

<configuration>
  <connectionStrings>
    <add name="MyDB" 
         connectionString="Server=.;Database=YourDB;Integrated Security=True;" 
         providerName="System.Data.SqlClient"/>
  </connectionStrings>
</configuration>

在代码中获取配置的连接字符串

// ASP.NET Core
string connString = Configuration.GetConnectionString("MyDB");
// ASP.NET Framework
string connString = WebConfigurationManager.ConnectionStrings["MyDB"].ConnectionString;

选择方案的建议:

  • 需要高性能/简单查询 → Dapper
  • 需要复杂业务逻辑/领域驱动 → Entity Framework Core
  • 需要完全控制SQL → ADO.NET

根据您的项目规模和团队熟悉度选择合适的数据库访问方式。

asp.net数据库查询代码

图片来源于AI模型,如侵权请联系管理员。作者:酷小编,如若转载,请注明出处:https://www.kufanyun.com/ask/290145.html

(0)
上一篇 2026年2月10日 02:05
下一篇 2026年2月10日 02:14

相关推荐

  • 阿里云CDN价格详情,不同套餐的加速费用是多少?

    阿里云加速CDN价格解析随着互联网的快速发展,内容分发网络(CDN)已成为网站和应用程序提高访问速度、降低延迟、提升用户体验的关键技术,阿里云作为国内领先的云服务提供商,其CDN服务凭借稳定、高效的特点,受到了众多用户的青睐,本文将详细介绍阿里云加速CDN的价格,帮助您了解不同套餐的费用情况,阿里云加速CDN计……

    2025年11月24日
    03750
  • 供水智能调度是什么,供水智能调度系统

    2026年供水智能调度的核心结论是:通过构建“云-边-端”协同的数字孪生底座,结合AI动态算法与物联网实时感知,实现从“被动抢修”向“主动预测”转变,最终达成漏损率降低至8%以下、能耗节省15%-20%、供水压力稳定性提升30%的运营目标,传统模式痛点与智能转型必要性过去十年,城市供水系统长期依赖人工经验调度……

    2026年5月21日
    0774
  • ASPNet分页控件源码揭秘,它是如何实现高效分页功能的?

    在ASP.NET开发中,分页控件是常用的一种功能,它可以帮助我们轻松地在数据列表中实现分页显示,本文将详细介绍ASP.NET分页控件的源码,包括其基本结构、工作原理以及如何实现自定义分页,ASP.NET分页控件概述ASP.NET分页控件是一个基于Web的控件,它允许用户在数据列表中通过点击页码或者跳转链接来浏览……

    2025年12月20日
    02000
    • 服务器间歇性无响应是什么原因?如何排查解决?

      根源分析、排查逻辑与解决方案服务器间歇性无响应是IT运维中常见的复杂问题,指服务器在特定场景下(如高并发时段、特定操作触发时)出现短暂无响应、延迟或服务中断,而非持续性的宕机,这类问题对业务连续性、用户体验和系统稳定性构成直接威胁,需结合多维度因素深入排查与解决,常见原因分析:从硬件到软件的多维溯源服务器间歇性……

      2026年1月10日
      020
  • 供应链智能使用场景有哪些?供应链智能化应用

    供应链智能的核心价值在于通过AI算法与物联网技术实现全链路可视化、预测性补货及动态路径优化,2026年数据显示,成熟应用企业可降低15%-25%物流成本并提升30%库存周转率,是制造业与零售业降本增效的必选项,供应链智能的核心应用场景解析供应链智能并非单一软件,而是涵盖从原材料采购到终端交付的全流程数字化解决方……

    2026年5月14日
    0922

发表回复

您的邮箱地址不会被公开。 必填项已用 * 标注