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日

相关文章

  • net core下链路追踪skywalking安装和简单使用教程

    .NET Core下链路追踪SkyWalking安装和简单使用教程 在本攻略中,我们将详细讲解如何在.NET Core应用程序中安装和使用SkyWalking进行链路追踪,并提供两个示例说明。 SkyWalking简介 SkyWalking是一个开源的分布式系统追踪解决方案,可以帮助开发人员更好地了解应用程序的性能和行为。SkyWalking支持多种语言和框…

    C# 2023年5月16日
    00
  • c#文件的复制,移动,创建(实例代码)

    下面是关于c#文件的复制、移动和创建的完整攻略。 一、文件复制 文件复制是指将一个文件的内容完整地复制到另一个文件中。在C#中,我们可以使用File.Copy()方法完成文件复制,具体实现代码如下: using System.IO; // 源文件路径 string sourcePath = @"C:\example\example1.txt&quo…

    C# 2023年5月31日
    00
  • C#数组初始化简析

    当我们使用C#编程时,数组是一种常见的数据类型。在定义和初始化数组时,可以采用多种不同的方法,而我们需要了解其语法和用法。本文将对C#数组初始化进行详细讲解,供读者参考。 数组初始化基础 C#数组是一个有序的数据集合,其中包含指定类型的元素。初始化数组时,需要为它指定大小,这样在运行时就可以获取正确的长度。以下是数组初始化的基本语法: dataType[] …

    C# 2023年5月15日
    00
  • C#使用Enum.TryParse()实现枚举安全转换

    当我们需要将字符串或整数等类型转换为枚举类型时,可以使用C#提供的Enum.TryParse()方法来实现安全转换,避免了在转换时可能会抛出异常的情况。 什么是枚举类型 枚举类型是一种特殊的值类型(Value Type),它限定了该类型变量只能是预先定义好的枚举值中的一种。枚举类型可以在程序中用于表示特定的常量值,例如星期几、性别等。 Enum.TryPar…

    C# 2023年5月14日
    00
  • 浅谈c#表达式树Expression简单类型比较demo

    让我来详细讲解一下“浅谈c#表达式树Expression简单类型比较demo”的攻略。 什么是表达式树Expression? Expression是.NET Framework中定义的一个类,它代表了一个可执行的代码块。所谓的表达式树Expression就是将一段具体的代码逻辑抽象成树型结构, 如何使用表达式树实现简单类型比较? 表达式树可以用来构建动态查询…

    C# 2023年6月1日
    00
  • C# 位运算符整理

    C# 位运算符整理攻略 概述 在C#中,位运算符可以用于对二进制位进行逻辑运算。C#中的常见位运算符有: 按位与(&) 按位或(|) 按位异或(^) 取反(~) 左移(<<) 右移(>>) 按位与(&) 按位与运算符将两个数的二进制位进行比较,如果两个二进制位都为1,则该位的结果为1,否则为0。 示例代码: int a…

    C# 2023年5月31日
    00
  • C#多线程之线程控制详解

    C#多线程之线程控制详解 在C#中,多线程技术通常用于对计算密集型和I/O密集型任务进行并发处理,以提高程序的性能和响应时间。C#提供了一系列的线程控制相关的基础类和方法,开发者可以通过这些类和方法灵活地控制线程的创建、启动、暂停、终止等行为。本文将详细讲解C#多线程之线程控制的相关知识点,包括线程同步、线程池、任务取消等内容。 线程同步 在多线程并发场景下…

    C# 2023年6月6日
    00
  • c# .net 生成图片验证码的代码

    为了在C# .NET中生成图片验证码,我们可以遵循以下步骤: 步骤1:安装NuGet包 我们需要安装 ZXing 和 System.Drawing.Common 两个NuGet包,以便在C#代码中引用。 运行以下命令安装: Install-Package ZXing -Version 1.1.0 Install-Package System.Drawing.…

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