C# 如何连接SQL Server数据库 - ADO.NET的经典用法


最常用、最稳妥的C#连接SQL Server方式是ADO.NET。它原生支持、无需第三方库,通过SqlConnection、SqlCommand和SqlDataReader等类实现连接、参数化查询及增删改操作,推荐使用Windows身份验证和using语句确保资源释放。

c# 如何连接sql server数据库 - ado.net的经典用法

用 C# 连接 SQL Server,最常用、最稳妥的方式就是 ADO.NET。它不依赖第三方库,是 .NET 原生支持的数据访问模型,适合大多数 WinForms、Console 或 ASP.NET(非 Core)项目。

准备连接字符串

连接字符串是关键,它告诉程序“去哪找数据库、用什么账号登录”。常见格式如下:

Server=localhost\SQLEXPRESS;Database=MyDB;Trusted_Connection=True;

说明:

  • Server:SQL Server 实例名,本地默认实例可写 localhost.;命名实例如 SQLEXPRESS 要写成 localhost\SQLEXPRESS(双反斜杠是 C# 字符串转义)
  • Database:要连接的数据库名
  • Trusted_Connection=True:表示使用 Windows 身份验证(推荐开发阶段)
  • 如需 SQL 登录,改用:User ID=sa;Password=123456;

用 SqlConnection 打开并验证连接

连接本身不自动打开,必须显式调用 Open()。建议用 using 确保及时释放资源:

string connStr = "Server=localhost\SQLEXPRESS;Database=MyDB;Trusted_Connection=True;";
using (SqlConnection conn = new SqlConnection(connStr))
{
    try
    {
        conn.Open();
        Console.WriteLine("连接成功!");
    }
    catch (SqlException ex)
    {
        Console.WriteLine("连接失败:" + ex.Message);
    }
}

注意:SqlConnection 是轻量对象,不用长期持有,用完即关。

执行查询:SqlCommand + SqlDataReader

查数据最常用方式是 ExecuteReader() 配合 SqlDataReader,适合读取多行结果:

string sql = "SELECT Id, Name FROM Users WHERE Age > @age";
using (SqlConnection conn = new SqlConnection(connStr))
{
    conn.Open();
    using (SqlCommand cmd = new SqlCommand(sql, conn))
    {
        cmd.Parameters.AddWithValue("@age", 18); // 防止 SQL 注入!
<pre class="brush:php;toolbar:false;">    using (SqlDataReader reader = cmd.ExecuteReader())
    {
        while (reader.Read())
        {
            int id = reader.GetInt32("Id");
            string name = reader.GetString("Name");
            Console.WriteLine($"{id}: {name}");
        }
    }
}

}

达芬奇 达芬奇

达芬奇——你的AI创作大师

达芬奇 166 查看详情 达芬奇

要点:

  • 务必用参数化查询(@age),避免拼接字符串引发注入风险
  • SqlDataReader 是只进、只读、在线流式读取,适合大数据量或逐行处理
  • 所有 using 块自动调用 Dispose(),释放连接、命令、读取器

执行增删改:ExecuteNonQuery()

对 INSERT / UPDATE / DELETE 操作,用 ExecuteNonQuery(),它返回受影响的行数:

string sql = "INSERT INTO Users (Name, Age) VALUES (@name, @age)";
using (SqlConnection conn = new SqlConnection(connStr))
{
    conn.Open();
    using (SqlCommand cmd = new SqlCommand(sql, conn))
    {
        cmd.Parameters.AddWithValue("@name", "张三");
        cmd.Parameters.AddWithValue("@age", 25);
<pre class="brush:php;toolbar:false;">    int rows = cmd.ExecuteNonQuery();
    Console.WriteLine($"插入成功,影响 {rows} 行");
}

}

注意:ExecuteNonQuery() 不返回结果集,不能用来查数据;事务控制可配合 SqlTransaction 实现。

基本上就这些。ADO.NET 写法直白、可控性强,虽然比 EF 繁琐些,但性能好、逻辑清晰,特别适合学习数据库交互本质或做轻量级工具。

以上就是C# 如何连接SQL Server数据库 - ADO.NET的经典用法的详细内容,更多请关注其它相关文章!


# 相关文章  # sem跟seo哪个难  # 网站商品推广平台  # 烟台建设一个网站  # seo博客微博的维护  # seo诊断  # 江干区营销推广课程  # 江油定制网站建设报价  # 自贡seo优化排名系统  # 海外品牌营销与推广课程  # 徐州seo是什么  # 如需  # 解决问题  # 中文网  # word  # 推荐使用  # 选择器  # 身份验证  # 第三方  # 最常用  # 达芬奇  # .net  # 数据访问  # c#  # win  # 工具  # 大数据  # windows 


相关栏目: 【 Google疑问12 】 【 Facebook疑问10 】 【 优化推广96088 】 【 技术知识133117 】 【 IDC资讯59369 】 【 网络运营7196 】 【 IT资讯61894


相关推荐: 济南公交卡手机充值指南  PPT智能排版生成入口 免费PPT内容自动生成平台  Win10锁屏时间怎么设置 Win10调整自动锁屏时间方法  百度竞价WAP显示PC链接问题  163邮箱网页版官方登录入口 163邮箱网页版访问页面  vivo手机视频通话美颜怎么设置_vivo视频通话美颜开启方法  毒蘑菇VOLUMESHADER_BM官网首页登录入口 毒蘑菇VOLUMESHADER_BM官网首页登录入口说明  mysql怎么导入sql文件_mysql导入sql文件的方法与技巧  在Spring Boot Thymeleaf中利用布尔属性实现容器的条件显示  c++如何实现一个简单的RPC框架_c++远程过程调用原理与实践  顺丰快递收费标准查询_如何查看顺丰最新收费价格  《淘宝联盟》推广自己的店铺方法  向日葵客户端怎么进行语音通话_向日葵客户端语音通话功能使用方法  PHP utf8_encode 字符编码转换陷阱与解决方案  CodeIgniter 3 连接 SQL Server:正确获取查询结果的教程  Go反射进阶:访问内嵌结构体中的被遮蔽方法  Yandex世界探索 最新官方免登录入口全知道  谷歌学术论文搜索引擎 谷歌学术官网入口论坛永久链接  Win10如何关闭操作中心通知 Win10免打扰设置全攻略【清爽】  《长生:天机降世》火塔小怪大全  c++类和对象到底是什么_c++面向对象编程基础  C++ static关键字作用_C++静态成员变量与静态函数  lol小红书怎么|直播|?lol小红书|直播|是什么意思?  谷歌邮箱官方入口链接 谷歌邮箱网页版电脑端快速登录  yy漫画登录页面官方入口_yy漫画在线阅读网址入口  C++ virtual析构函数作用_C++基类虚析构函数防止内存泄漏  高德地图怎么查看未来行程规划_高德地图未来行程规划查看方法  WooCommerce 新客户订单自动添加管理员备注教程  飞飞漫画漫画阅读官网_飞飞漫画漫画阅读官网进入阅读  J*aScript事件处理:优化键盘输入与表单提交的实践指南  如何在CSS中使用伪类选择器_hover实现悬停效果  4399正版网页版入口高清直达链接  告别繁琐SEO!如何使用SyliusSitemap插件自动化生成网站地图,提升搜索引擎排名  微信注销后银行卡解绑了吗_微信注销后银行卡解绑状态  VS Code的时间线(Timeline)视图:您的代码时光机  oppo手机如何通过下拉通知栏截图_oppo手机通知栏快捷截图方法  msn官方入口2025登录 msn官网2025直达首页入口  Teambition网盘如何共享文件  如何自定义苹果手机铃声  C++ switch case字符串_C++如何实现字符串switch匹配  《七读免费小说》开通会员方法  悟空浏览器网页版在线工具 悟空浏览器网页版在线平台入口  Google Cloud Functions 时区处理指南:理解与最佳实践  如何使用 composer 和 aop-php 实现 AOP 编程?  Keras中Convolution2D层及其核心辅助层详解  如何用mysql实现客户反馈管理_mysql客户反馈数据库方法  C#解析来自网络的XML流数据 实时错误处理与重试机制  使用逻辑应用(Logic Apps)自动处理邮件附件中的XML到Excel  在Flask应用中安全高效地更新SQLAlchemy用户数据  《红果免费短剧》下载观看方法 

 2025-12-08

了解您产品搜索量及市场趋势,制定营销计划

同行竞争及网站分析保障您的广告效果

点击免费数据支持

提交您的需求,1小时内享受我们的专业解答。

运城市盐湖区信雨科技有限公司


运城市盐湖区信雨科技有限公司

运城市盐湖区信雨科技有限公司是一家深耕海外推广领域十年的专业服务商,作为谷歌推广与Facebook广告全球合作伙伴,聚焦外贸企业出海痛点,以数字化营销为核心,提供一站式海外营销解决方案。公司凭借十年行业沉淀与平台官方资源加持,打破传统外贸获客壁垒,助力企业高效开拓全球市场,成为中小企业出海的可靠合作伙伴。

 8156699

 13765294890

 8156699@qq.com

Notice

We and selected third parties use cookies or similar technologies for technical purposes and, with your consent, for other purposes as specified in the cookie policy.
You can consent to the use of such technologies by closing this notice, by interacting with any link or button outside of this notice or by continuing to browse otherwise.