ASPNET连接SQL数据库的简单实例代码
时间:2026-03-24 来源:祺云SEO
在ASP.NETCore中连接SQLServer数据库需使用Microsoft.Data.SqlClient库并配置连接字符串,以下是完整实现步骤及最佳实践:
环境准备
- 安装NuGet包:
Install-PackageMicrosoft.Data.SqlClient - 配置appsettings.json:
{"ConnectionStrings":{"DefaultConnection":"Server=.;Database=MyDB;UserId=sa;Password=YourStrong@Password;TrustServerCertificate=true;"}}
核心连接代码
关键技术解析
-
连接池优化
- 默认启用连接池(MaxPoolSize=100)
- 使用
using语句确保连接及时释放 - 避免在循环中创建新连接
-
安全实践
- 连接字符串存储:
//生产环境使用AzureKeyVaultbuilder.Configuration.AddAzureKeyVault(); - 始终使用参数化查询
- 启用加密连接:
"Encrypt=true;TrustServerCertificate=false;"
- 连接字符串存储:
-
异步操作(高性能场景)
publicasyncTask<List<User>>GetUsersAsync(){varusers=newList<User>();using(varconn=newSqlConnection(connectionString)){awaitconn.OpenAsync();varcommand=newSqlCommand("SELECTFROMUsers",conn);using(varreader=awaitcommand.ExecuteReaderAsync()){while(awaitreader.ReadAsync()){users.Add(newUser{Id=reader.GetInt32(0),Name=reader.GetString(1)});}}}returnusers;}
异常处理规范
企业级部署建议
-
连接字符串配置策略:
//环境区分配置varenv=builder.Environment;varconfig=newConfigurationBuilder().AddJsonFile($"appsettings.{env.EnvironmentName}.json").Build(); -
连接健康检查(Kubernetes就绪探针):
builder.Services.AddHealthChecks().AddSqlServer(configuration["ConnectionStrings:DefaultConnection"]);
性能监控
在Program.cs启用诊断:
深度思考:当连接池达到上限时,如何在不重启应用的情况下动态扩展?建议采用分片连接策略:根据业务模块创建独立连接池,例如将订单业务和用户业务的数据库连接分离配置,通过
ApplicationName标识:"ConnectionStrings":{"OrderDB":"Server=...;ApplicationName=OrderModule;","UserDB":"Server=...;ApplicationName=UserModule;"}
您在实际项目中遇到的数据库连接难题是什么?欢迎分享具体场景,我们将从架构设计层面分析解决方案,对于高并发场景下的连接泄露问题,是否有更优的实时检测方案?