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日

相关文章

  • c#转换全角半角方法示例

    当我们需要对用户输入的字符或文本进行处理时,经常需要将全角字符转换为半角字符或者将半角字符转换为全角字符。c#中提供了相应的方法来实现这些功能。下面是一个完整的示例说明“c#转换全角半角方法”的攻略。 1. 转换全角到半角 使用 System.Text.RegularExpressions.Regex 类的 Replace 方法可以实现将全角字符转换为半角字…

    C# 2023年6月8日
    00
  • C#多线程之线程中止Abort()方法

    下面我将为您详细讲解 “C#多线程之线程中止Abort()方法” 的完整攻略。 什么是Abort()方法 Thread.Abort() 方法是 Thread 类提供的用来终止线程的方法。它是通过引发 System.Threading.ThreadAbortException 异常来终止线程的。 在运行时,当一个线程调用 Abort() 方法时,它本身会向目标…

    C# 2023年5月15日
    00
  • C# PLINQ 内存列表查询优化历程

    C# PLINQ 内存列表查询优化历程 问题描述 我们有一个包含1千万个元素的列表,每个元素包含两个整数字段,需要进行查询和统计操作。最初使用普通的Linq查询,但在大数据情况下性能明显不足。 解决方案 我们使用PLINQ(Parallel LINQ,即并行LINQ)来优化查询。PLINQ是Linq的一个扩展,可以在多个线程中并行执行查询,提高查询效率。 步…

    C# 2023年6月7日
    00
  • C#语言中字符类char的使用方法(总结)

    下面是“C#语言中字符类char的使用方法(总结)”的完整攻略。 什么是字符类char 在C#语言中, char 是一个表示 Unicode 字符的值类型。char类型使用16位(两个字节)来储存一个字符,它可以用来表示任何Unicode字符。 char的声明和初始化 char 值可以使用单引号括起来的字符常量来声明和初始化。例如: char ch = ‘A…

    C# 2023年6月1日
    00
  • treeview递归绑定的两种方法

    下面是对 “treeview递归绑定的两种方法” 的详细解释: 标题 方法一 第一种方法是手动递归绑定treeview。我们可以用以下步骤来实现: 构造treeview,添加根节点。 设计递归函数,用于向treeview中添加子节点。 递归添加节点。 private void RecursiveAddToTreeView(TreeNode parentNod…

    C# 2023年5月31日
    00
  • .Net Core依赖注入IOC和DI介绍

    在 .NET Core 中,可以使用依赖注入(DI)和控制反转(IoC)来管理应用程序中的对象和依赖项。以下是 .NET Core 依赖注入和控制反转的完整攻略: 步骤一:配置依赖注入容器 在使用依赖注入功能前,需要配置依赖注入容器。可以在 ASP.NET Core 项目中的 Startup.cs 文件中配置依赖注入容器。以下是一个示例: public vo…

    C# 2023年5月17日
    00
  • C#创建控制Windows服务

    创建 Windows 服务可以让我们的程序在后台运行,从而实现一些后台任务,例如数据同步、邮件服务等。C#作为一门强大的编程语言,可以很方便地创建Windows服务。本文将提供C#创建控制Windows服务的完整攻略,内容包括创建 Windows 服务、安装和卸载服务、启动和停止服务,以及包含两个示例说明。 创建 Windows 服务 创建 Windows …

    C# 2023年6月3日
    00
  • 符合标准的js对联广告

    下面是关于“符合标准的js对联广告”的完整攻略。 什么是对联广告 对联广告是网站广告形式之一,通常出现在网页的左右两侧。对联广告通常由两个广告单元组成,它们在同一水平线上,并且左右相对称。 什么是符合标准的js对联广告 符合标准的js对联广告需要满足以下要求: 左右两侧的广告单元大小要相等。 广告单元要在同一水平线上。 左右两侧的广告单元需要有统一的div …

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