SQL Server存储过程在C#中调用的简单实现方法

下面我将详细讲解SQL Server存储过程在C#中调用的简单实现方法。

简介

存储过程是在SQL Server中执行SQL语句的一种重要方式,它可以提高数据库的性能,减少重复的代码量,还可以提高数据库的安全性。通过C#语言来调用SQL Server存储过程,可以更加方便地完成数据库操作。

第一步:创建SQL Server存储过程

创建SQL Server存储过程需要使用SQL Server Management Studio,下面是一个简单的示例:

CREATE PROCEDURE [dbo].[GetProductList]
AS
BEGIN
    SELECT ProductName, ProductDescription, ProductPrice 
    FROM ProductTable
END

上面的存储过程名为GetProductList,它查询一个名为ProductTable的表,并返回其中的三个字段:ProductName、ProductDescription、ProductPrice。

第二步:在C#中调用SQL Server存储过程

调用SQL Server存储过程需要使用System.Data.SqlClient命名空间的相关类,具体步骤如下:

1. 在C#中创建SqlConnection连接对象

string connectionString = "Data Source=(local);Initial Catalog=ProductDB;Integrated Security=True";
SqlConnection connection = new SqlConnection(connectionString);

上面的代码创建了一个名为connection的SqlConnection对象,连接字符串为“Data Source=(local);Initial Catalog=ProductDB;Integrated Security=True”,其中“Data Source”表示数据库所在的服务器位置,“Initial Catalog”表示要连接的数据库名称,而“Integrated Security=True”则表示使用Windows身份验证模式连接数据库。

2. 创建SqlCommand对象并执行存储过程

string procedureName = "GetProductList";
SqlCommand command = new SqlCommand(procedureName, connection);
command.CommandType = CommandType.StoredProcedure;

connection.Open();
SqlDataReader reader = command.ExecuteReader();

while (reader.Read())
{
    Console.WriteLine(reader["ProductName"]);
    Console.WriteLine(reader["ProductDescription"]);
    Console.WriteLine(reader["ProductPrice"]);
}

reader.Close();
connection.Close();

上面的代码创建了一个名为command的SqlCommand对象,指定它要执行的存储过程名为“GetProductList”,并将CommandType属性设置为CommandType.StoredProcedure。

然后,通过connection.Open()方法打开Sql连接,并执行一个名为ExecuteReader的方法,返回一个名为reader的SqlDataReader对象,通过while语句读取查询结果,并输出结果。

最后,需要调用reader.Close()方法和connection.Close()方法关闭SqlDataReader和SqlConnection。

示例1:查询用户信息

现在,我们将使用上述方法来查询一个名为UserInfo的表,并返回其中的三个字段:UserID、UserName、UserAge。完整代码如下:

CREATE PROCEDURE [dbo].[GetUserInfo]
AS
BEGIN
    SELECT UserID, UserName, UserAge 
    FROM UserInfo
END
string connectionString = "Data Source=(local);Initial Catalog=UserDB;Integrated Security=True";
SqlConnection connection = new SqlConnection(connectionString);

string procedureName = "GetUserInfo";
SqlCommand command = new SqlCommand(procedureName, connection);
command.CommandType = CommandType.StoredProcedure;

connection.Open();
SqlDataReader reader = command.ExecuteReader();

while (reader.Read())
{
    Console.WriteLine(reader["UserID"]);
    Console.WriteLine(reader["UserName"]);
    Console.WriteLine(reader["UserAge"]);
}

reader.Close();
connection.Close();

示例2:插入一条用户信息

现在,我们将使用上述方法来向一个名为UserInfo的表中插入一条数据。完整代码如下:

CREATE PROCEDURE [dbo].[InsertUserInfo]
    @UserID INT,
    @UserName NVARCHAR(50),
    @UserAge INT
AS
BEGIN
    INSERT INTO UserInfo(UserID, UserName, UserAge)
    VALUES (@UserID, @UserName, @UserAge)
END
string connectionString = "Data Source=(local);Initial Catalog=UserDB;Integrated Security=True";
SqlConnection connection = new SqlConnection(connectionString);

string procedureName = "InsertUserInfo";
SqlCommand command = new SqlCommand(procedureName, connection);
command.CommandType = CommandType.StoredProcedure;

command.Parameters.AddWithValue("@UserID", 1);
command.Parameters.AddWithValue("@UserName", "张三");
command.Parameters.AddWithValue("@UserAge", 20);

connection.Open();
command.ExecuteNonQuery();
connection.Close();

上面的代码首先创建了一个名为InsertUserInfo的存储过程,在该过程中使用了三个参数:@UserID、@UserName和@UserAge,然后将这些参数添加到一个SqlCommand对象的Parameters集合中。

接着,通过command.ExecuteNonQuery()方法执行存储过程中的INSERT语句,并插入一条数据。

最后,需要调用connection.Close()方法关闭连接。

总结

通过本教程,你已经学会了在C#中调用SQL Server存储过程的简单实现方法。如果你还没有掌握这一技能,我建议你多做一些练习,在实践中逐渐熟练掌握。

本站文章如无特殊说明,均为本站原创,如若转载,请注明出处:SQL Server存储过程在C#中调用的简单实现方法 - Python技术站

(0)
上一篇 2023年5月31日
下一篇 2023年5月31日

相关文章

  • asp.net c# 调用百度pai实现在线翻译,英文转中文

    要实现asp.net c#调用百度AI实现在线翻译,首先需要获取百度翻译API的访问密钥。然后,通过发送HTTP请求到百度翻译API接口,即可获取到翻译结果。 下面是详细的步骤: 1. 获取百度翻译API访问密钥 访问百度智能云官网,登录或者注册账号 在控制台中创建应用,选择“翻译”作为所需服务。 记录下应用的App ID和API Key 2. 编写C#程序…

    C# 2023年5月31日
    00
  • C#中datatable序列化与反序列化实例分析

    下面是详细的攻略。 C#中datatable序列化与反序列化实例分析 简介 DataTable(数据表)是C#中用来存储表格形式数据的对象,它可以存储各种数据类型(比如字符串、整数、浮点数等)。在开发中,我们经常需要将DataTable传输到其他地方(比如网络上)或者将其保存到文件中等,这时我们就需要对DataTable进行序列化和反序列化。 序列化 序列化…

    C# 2023年5月31日
    00
  • C#对JSON与对象的序列化与反序列化

    下面是详细讲解”C#对JSON与对象的序列化与反序列化”的完整攻略。 什么是序列化和反序列化 序列化是将对象的状态转换为可存储或传输的形式的过程,通常将对象转换为二进制流或文本格式(如JSON或XML)。反序列化是将序列化后的数据重新转换回对象的过程。 在C#中,可以使用序列化将对象转换为JSON格式,以便在网络上传输或存储数据。 C#中的JSON序列化和反…

    C# 2023年6月3日
    00
  • Asp.Net URL重写的具体实现

    下面我将为您详细讲解Asp.Net URL重写的具体实现。 什么是URL重写 URL重写是指通过将某个URL地址重写成另一个URL地址,来达到URL地址美化或处理URL地址映射的目的。在Web应用程序中,常见的URL重写方式有两种:一种是基于IIS的URL重写模块,另一种是基于Asp.Net的URL重写模块。 Asp.Net URL重写的具体实现 步骤一:启…

    C# 2023年5月31日
    00
  • 解析C#多线程编程中异步多线程的实现及线程池的使用

    解析C#多线程编程中异步多线程的实现及线程池的使用 什么是多线程? 多线程是指程序中同时执行多个线程,可以让应用程序同时执行多项任务,提高程序运行效率和用户体验。在C#中,可以使用Thread类或Task类来创建多线程应用。 什么是异步多线程? 异步多线程是指可以让应用程序在执行某个操作时不被阻塞,同时可以继续执行其他操作。在C#中,可以使用async和aw…

    C# 2023年5月15日
    00
  • C#中ListView用法实例

    下面是“C#中ListView用法实例”的完整攻略。 一、概述 在C#中,ListView是一个常用的控件,它可以用于显示大量的数据,并在其中进行排序、筛选、编辑等操作。本文将详细介绍ListView控件的用法,并通过两个实例来演示如何实现基本的ListView功能。 二、ListView基础用法 1. 创建ListView 在设计视图中找到“ListVie…

    C# 2023年6月6日
    00
  • C#编程总结(一)序列化总结

    下面是关于“C#编程总结(一)序列化总结”的完整攻略,包含两个示例。 1. 序列化总结 在C#编程中,序列化是将对象转换为可存储或可传输格式的过程。反序列化是将序列化的数据转换回对象的过程。C#提供了多种序列化方式,包括二进制序列化、XML序列化和JSON序列化等。以下是C#编程中序列化的总结: 1.1 二进制序列化 二进制序列化是将对象转换为二进制格式的过…

    C# 2023年5月15日
    00
  • asp实现WEB打印代码大全

    本文将详细讲解如何使用ASP实现WEB打印,并提供代码示例。本文涉及ASP代码编写与调试的知识,假设读者已经具备一定的ASP编程经验。 准备工作 在开始之前,需要安装好IIS服务器,以便能够调用ASP程序。同时,我们还需要准备好以下工具: Web浏览器:用于访问我们的ASP程序; 文本编辑器:用于编写ASP代码; 打印机:用于打印文档。 实现步骤 第一步:创…

    C# 2023年5月31日
    00
合作推广
合作推广
分享本页
返回顶部