ADO.NET与C#操作SQL数据库基础教程
需积分: 9 149 浏览量
更新于2024-09-30
收藏 19KB TXT 举报
"C#操作SQL经典"
在C#中与SQL数据库进行交互是常见的开发任务,ADO.NET提供了方便的框架来实现这一目标。本资源主要关注C#如何使用ADO.NET来执行基本的数据库操作,如连接、查询、更新和删除。
1. ADO.NET组件与数据库连接
ADO.NET中的SqlConnection类用于建立与SQL Server的连接。在C#代码中,创建一个SqlConnection实例,并通过设置ConnectionString属性来提供数据库连接所需的参数,包括数据源(datasource)、初始目录(initialcatalog)、用户名(userid)和密码(password)。例如:
```csharp
SqlConnection conn = new SqlConnection("datasource=localhost;initialcatalog=pubs;userid=sa;password=sa;");
```
连接数据库时,需调用Open()方法,断开连接则使用Close()方法。
2. 执行查询操作
查询数据通常通过SqlCommand对象和SqlDataReader实现。SqlCommand用于构建SQL语句,SqlDataReader用于读取查询结果。示例:
```csharp
SqlCommand cmd = new SqlCommand("SELECT * FROM TableName", conn);
SqlDataReader reader = cmd.ExecuteReader();
while (reader.Read())
{
// 处理每一行数据
}
reader.Close();
```
注意,SqlDataReader是只进的,一旦读过一行,就不能回退,适合处理大量数据。
3. 数据填充DataSet
如果需要将查询结果保存到内存中以便进一步操作,可以使用DataSet和SqlDataAdapter。SqlDataAdapter可以从数据库填充DataSet,并在必要时更新数据库。创建SqlDataAdapter并调用Fill方法:
```csharp
SqlDataAdapter adapter = new SqlDataAdapter(cmd);
DataSet ds = new DataSet();
adapter.Fill(ds, "TableName");
```
这样,DataSet的表就包含了查询的结果。
4. 执行插入、更新和删除操作
插入、更新和删除数据通过SqlCommand的ExecuteNonQuery()方法完成。例如,删除记录:
```csharp
SqlCommand deleteCmd = new SqlCommand("DELETE FROM TableName WHERE ID = @ID", conn);
deleteCmd.Parameters.AddWithValue("@ID", someId);
deleteCmd.ExecuteNonQuery();
```
在更新或插入记录时,同样需要使用Parameters添加参数化值,以防止SQL注入。
5. 事务处理
当需要一组操作作为一个原子操作执行时,可以使用SqlTransaction。在开始事务后,所有的数据库操作都在该事务范围内,只有当所有操作成功时才提交事务,否则回滚。例如:
```csharp
SqlTransaction tran = conn.BeginTransaction();
try
{
// 执行一系列操作
tran.Commit();
}
catch
{
tran.Rollback();
}
```
6. 错误处理和连接管理
在实际开发中,应该对可能出现的异常进行捕获和处理,例如在打开或关闭连接时可能出现的异常。同时,使用using语句可以确保数据库连接在不再需要时被正确关闭和释放。
以上就是C#操作SQL数据库的一些核心知识点,包括连接管理、查询、数据填充、事务处理等。理解并熟练应用这些概念是C#数据库编程的基础。
2010-10-27 上传
2022-06-20 上传
2024-02-06 上传
2023-07-28 上传
2023-07-13 上传
2023-06-01 上传
2023-05-13 上传
2023-10-28 上传
sirzxj
- 粉丝: 49
- 资源: 24
最新资源
- Raspberry Pi OpenCL驱动程序安装与QEMU仿真指南
- Apache RocketMQ Go客户端:全面支持与消息处理功能
- WStage平台:无线传感器网络阶段数据交互技术
- 基于Java SpringBoot和微信小程序的ssm智能仓储系统开发
- CorrectMe项目:自动更正与建议API的开发与应用
- IdeaBiz请求处理程序JAVA:自动化API调用与令牌管理
- 墨西哥面包店研讨会:介绍关键业绩指标(KPI)与评估标准
- 2014年Android音乐播放器源码学习分享
- CleverRecyclerView扩展库:滑动效果与特性增强
- 利用Python和SURF特征识别斑点猫图像
- Wurpr开源PHP MySQL包装器:安全易用且高效
- Scratch少儿编程:Kanon妹系闹钟音效素材包
- 食品分享社交应用的开发教程与功能介绍
- Cookies by lfj.io: 浏览数据智能管理与同步工具
- 掌握SSH框架与SpringMVC Hibernate集成教程
- C语言实现FFT算法及互相关性能优化指南