C#连接与执行存储过程示例:创建SqlCommand并传递参数
需积分: 35 163 浏览量
更新于2024-11-13
收藏 857B TXT 举报
在C#编程中,操作数据库存储过程是一个常见的任务,尤其是在处理复杂的业务逻辑或数据管理时。本文将详细介绍如何通过实例化`SqlConnection`对象来执行存储过程。首先,我们需要创建一个`SqlConnection`对象,这个对象代表与数据库的连接,用于发送SQL命令。
```csharp
SqlConnection conn = new SqlConnection(); // 实例化SqlConnection对象
```
在这里,`SqlConnection`类是ADO.NET的一部分,它提供了与SQL Server数据库交互的基础。`ConnectionString`属性需要设置为应用程序配置中的连接字符串,以指定数据库的位置和凭据。
```csharp
conn.ConnectionString = WebConfigurationManager.ConnectionStrings["ConnectionString"].ToString();
```
`WebConfigurationManager.ConnectionStrings`是用于获取配置文件中预定义的数据库连接字符串的工具,"ConnectionString"是配置文件中存储的连接字符串的键名。
接下来,我们实例化一个`SqlCommand`对象,用于执行存储过程:
```csharp
SqlCommand rscm = new SqlCommand("BookDel", conn); // 实例化SqlCommand对象
```
`rscm`对象的`CommandType`属性被设置为`CommandType.StoredProcedure`,这意味着我们将执行的是存储过程,而不是普通的SQL查询。
```csharp
rscm.CommandType = CommandType.StoredProcedure;
```
为了传递参数给存储过程,我们需要创建一个`SqlParameter`对象,并添加到`rscm.Parameters`集合中。例如,如果有一个名为`@id`的输入参数,我们可以这样创建:
```csharp
SqlParameter delid = new SqlParameter("@id", SqlDbType.Int); // 创建SqlParameter对象
delid.Value = Convert.ToInt32(id.Text); // 设置参数值
rscm.Parameters.Add(delid);
```
这里假设`id.Text`是从用户界面获取的整数值,它会被传递给存储过程的`@id`参数。
当我们准备好执行存储过程时,可以使用`ExecuteNonQuery()`方法,这个方法用于执行非查询操作(如插入、更新或删除数据),并返回受影响的行数。
```csharp
rscm.ExecuteNonQuery();
```
如果需要获取存储过程的执行结果并进行进一步的数据操作,可以使用`ExecuteReader()`方法。然而,在这个例子中,由于`ExecuteNonQuery()`已经完成,我们通常不期待有返回结果集。
最后,记得关闭数据库连接和命令对象以释放系统资源:
```csharp
rscm.Dispose(); // 释放SqlCommand对象
conn.Dispose(); // 释放SqlConnection对象
```
这个C#代码示例展示了如何通过`SqlConnection`和`SqlCommand`来执行存储过程,包括创建连接、设置参数、执行命令以及正确地进行资源管理。这对于任何需要在C#中与数据库交互的开发者来说都是非常基础且实用的知识。
2017-02-25 上传
119 浏览量
2010-07-16 上传
2011-12-23 上传
2020-09-04 上传
2023-04-15 上传
2012-07-14 上传
2013-03-01 上传
2010-10-27 上传
taojianhua
- 粉丝: 0
- 资源: 5
最新资源
- 高清艺术文字图标资源,PNG和ICO格式免费下载
- mui框架HTML5应用界面组件使用示例教程
- Vue.js开发利器:chrome-vue-devtools插件解析
- 掌握ElectronBrowserJS:打造跨平台电子应用
- 前端导师教程:构建与部署社交证明页面
- Java多线程与线程安全在断点续传中的实现
- 免Root一键卸载安卓预装应用教程
- 易语言实现高级表格滚动条完美控制技巧
- 超声波测距尺的源码实现
- 数据可视化与交互:构建易用的数据界面
- 实现Discourse外聘回复自动标记的简易插件
- 链表的头插法与尾插法实现及长度计算
- Playwright与Typescript及Mocha集成:自动化UI测试实践指南
- 128x128像素线性工具图标下载集合
- 易语言安装包程序增强版:智能导入与重复库过滤
- 利用AJAX与Spotify API在Google地图中探索世界音乐排行榜