ASP.NET如何连接SQL数据库?详解连接步骤与配置方法

在ASP.NET中连接SQL数据库,主要有两种常用方式:ADO.NET(直接使用数据库连接)和Entity Framework(ORM框架),以下是详细步骤和示例:

asp.net怎么连接sql数据库


方式1:使用ADO.NET(基础方法)

步骤:

  1. 添加连接字符串到Web.config

    <configuration>
      <connectionStrings>
        <add name="MyDbConnection" 
             connectionString="Server=服务器地址;Database=数据库名;User Id=用户名;Password=密码;"
             providerName="System.Data.SqlClient"/>
      </connectionStrings>
    </configuration>
  2. C#代码中连接数据库

    using System.Data.SqlClient;
    using System.Configuration;
    public void GetData()
    {
        // 从Web.config获取连接字符串
        string connString = ConfigurationManager.ConnectionStrings["MyDbConnection"].ConnectionString;
        using (SqlConnection conn = new SqlConnection(connString))
        {
            conn.Open();
            string sql = "SELECT * FROM Users";
            SqlCommand cmd = new SqlCommand(sql, conn);
            // 读取数据
            SqlDataReader reader = cmd.ExecuteReader();
            while (reader.Read())
            {
                string name = reader["Name"].ToString();
                // 处理数据...
            }
        }
    }

方式2:使用Entity Framework Core(推荐)

步骤:

  1. 安装NuGet包

    • Microsoft.EntityFrameworkCore.SqlServer
    • Microsoft.EntityFrameworkCore.Design(用于迁移)
  2. 创建数据模型

    public class User
    {
        public int Id { get; set; }
        public string Name { get; set; }
    }
  3. 创建DbContext类

    asp.net怎么连接sql数据库

    using Microsoft.EntityFrameworkCore;
    public class AppDbContext : DbContext
    {
        public DbSet<User> Users { get; set; }
        protected override void OnConfiguring(DbContextOptionsBuilder optionsBuilder)
        {
            optionsBuilder.UseSqlServer("Server=服务器;Database=数据库;User Id=用户;Password=密码;");
        }
    }
  4. 在控制器中使用数据库

    public class UserController : Controller
    {
        private readonly AppDbContext _context;
        public UserController(AppDbContext context)
        {
            _context = context;
        }
        public IActionResult Index()
        {
            var users = _context.Users.ToList(); // 获取所有用户
            return View(users);
        }
    }
  5. 配置依赖注入(在Program.cs中)

    var builder = WebApplication.CreateBuilder(args);
    builder.Services.AddDbContext<AppDbContext>(options =>
        options.UseSqlServer(builder.Configuration.GetConnectionString("DefaultConnection")));

关键注意事项:

  1. 安全性

    • 不要在代码中硬编码连接字符串,始终使用Web.configappsettings.json
    • 使用集成身份验证(Windows验证)更安全:
      connectionString="Server=.;Database=MyDB;Integrated Security=True;"
  2. 异常处理

    try
    {
        // 数据库操作
    }
    catch (SqlException ex)
    {
        // 处理数据库异常
    }
  3. 连接池优化

    asp.net怎么连接sql数据库

    • ADO.NET默认启用连接池,使用using确保连接及时释放。

简化开发技巧:

  • 脚手架生成
    使用Visual Studio的ADO.NET实体数据模型向导自动生成DbContext和模型类。
  • 异步操作
    使用ExecuteReaderAsync()或EF Core的ToListAsync()提升性能。

    var users = await _context.Users.ToListAsync();

示例:完整ASP.NET Core流程

  1. appsettings.json配置

    {
      "ConnectionStrings": {
        "DefaultConnection": "Server=.;Database=MyAppDb;Integrated Security=True;"
      }
    }
  2. Program.cs注入服务

    builder.Services.AddDbContext<AppDbContext>(options =>
        options.UseSqlServer(builder.Configuration.GetConnectionString("DefaultConnection")));
  3. 通过依赖注入使用DbContext

    public class UserService
    {
        private readonly AppDbContext _db;
        public UserService(AppDbContext db) => _db = db;
        public void AddUser(string name)
        {
            _db.Users.Add(new User { Name = name });
            _db.SaveChanges();
        }
    }

选择方法:

  • 需要直接控制SQL → ADO.NET
  • 快速开发/维护 → Entity Framework Core
    根据项目需求灵活选用!

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

(0)
上一篇 2026年2月9日 10:01
下一篇 2026年2月9日 10:04

相关推荐

  • 新手如何快速掌握ASP.NET网站开发技术?关键知识点有哪些?

    ASP.NET网站开发技术ASP.NET是微软推出的企业级Web应用开发框架,自2002年推出ASP.NET 1.0以来,历经多次迭代升级,已成为全球范围内广泛应用的Web开发技术之一,它基于.NET Framework和.NET Core构建,提供了从基础控件到高级API的完整解决方案,旨在简化Web应用开发……

    2025年12月30日
    01610
  • 公众号能配置几个授权域名?公众号授权域名数量限制是多少

    公众号能配置几个授权域名一个微信公众号主体下,最多仅能配置 5 个授权域名用于网页授权登录(OAuth 2.0)及 JS-SDK 安全域名校验, 这是微信公众平台后台设定的硬性技术上限,旨在平衡企业营销灵活性与平台安全风控,若企业拥有多个业务线或子品牌,需提前规划域名架构,避免后期因数量受限导致功能无法上线,此……

    2026年4月22日
    0635
    • 服务器间歇性无响应是什么原因?如何排查解决?

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

      2026年1月10日
      020
  • 公交大数据分析平台业务框架是什么,公交大数据分析平台

    公交大数据分析平台业务框架构建高效、精准的公交大数据分析平台,核心在于打破数据孤岛,实现从“数据采集”到“智能决策”的全链路闭环,通过实时动态调度与历史趋势预测的双轮驱动,将公交运营效率提升 20% 以上,同时大幅降低空驶率与乘客等待时间,这不仅是技术的堆砌,更是业务逻辑的重构,旨在打造以数据为驱动的现代化城市……

    2026年4月29日
    0305
  • 光谷联影智慧医疗云项目工程信息怎么样?武汉智慧医疗云项目招标信息

    光谷联影智慧医疗云项目工程信息光谷联影智慧医疗云项目是华中地区医疗数字化转型的标杆工程,其核心结论在于通过构建高可用、低时延的混合云架构,成功实现了影像数据“云边协同”与 AI 辅助诊断的实时化,彻底解决了传统医疗模式下数据孤岛、算力瓶颈及跨院协作难三大痛点, 该项目不仅大幅提升了区域医疗资源的配置效率,更通过……

    2026年4月30日
    0603

发表回复

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