如何用C简单完整地调用存储过程?
- 行业动态
- 2025-01-19
- 2035
当然,以下是一个简单的 C# 调用存储过程的示例代码:,,“ csharp,using System;,using System.Data;,using System.Data.SqlClient;,,class Program,{, static void Main(), {, string connectionString = "your_connection_string";, using (SqlConnection connection = new SqlConnection(connectionString)), {, connection.Open();, , using (SqlCommand command = new SqlCommand("YourStoredProcedureName", connection)), {, command.CommandType = CommandType.StoredProcedure;, , // 添加参数(如果有), command.Parameters.Add(new SqlParameter("@Param1", SqlDbType.Int)).Value = 123;, , // 执行存储过程, using (SqlDataReader reader = command.ExecuteReader()), {, while (reader.Read()), {, Console.WriteLine(reader["ColumnName"].ToString());, }, }, }, }, },},` ,,请将 “your_connection_string” 替换为实际的数据库连接字符串,并将 “YourStoredProcedureName”` 和参数名称、类型等替换为实际的存储过程名称和参数。
在C#中调用存储过程是一个常见的操作,通常用于执行数据库中的复杂查询或更新,下面我将提供一个简单但完整的实例代码,展示如何在C#中调用存储过程。
创建数据库和存储过程
我们需要创建一个数据库和一个存储过程,假设我们使用的是SQL Server数据库。
-创建示例数据库 CREATE DATABASE SampleDB; GO -使用示例数据库 USE SampleDB; GO -创建示例表 CREATE TABLE Employees ( EmployeeID INT PRIMARY KEY, FirstName NVARCHAR(50), LastName NVARCHAR(50), Department NVARCHAR(50) ); GO -插入一些示例数据 INSERT INTO Employees (EmployeeID, FirstName, LastName, Department) VALUES (1, 'John', 'Doe', 'HR'); INSERT INTO Employees (EmployeeID, FirstName, LastName, Department) VALUES (2, 'Jane', 'Smith', 'IT'); GO -创建存储过程 CREATE PROCEDURE GetEmployeeByID @EmployeeID INT AS BEGIN SELECT * FROM Employees WHERE EmployeeID = @EmployeeID; END GO
C# 代码调用存储过程
我们在C#中编写代码来调用这个存储过程。
using System; using System.Data.SqlClient; namespace StoredProcedureExample { class Program { static void Main(string[] args) { // 数据库连接字符串 string connectionString = "Server=localhost;Database=SampleDB;Integrated Security=True;"; // 存储过程名称 string procedureName = "GetEmployeeByID"; // 参数值 int employeeID = 1; // 调用存储过程并获取结果 using (SqlConnection connection = new SqlConnection(connectionString)) { connection.Open(); using (SqlCommand command = new SqlCommand(procedureName, connection)) { // 设置命令类型为存储过程 command.CommandType = System.Data.CommandType.StoredProcedure; // 添加存储过程参数 command.Parameters.AddWithValue("@EmployeeID", employeeID); // 执行存储过程并读取结果 using (SqlDataReader reader = command.ExecuteReader()) { while (reader.Read()) { Console.WriteLine($"EmployeeID: {reader["EmployeeID"]}, FirstName: {reader["FirstName"]}, LastName: {reader["LastName"]}, Department: {reader["Department"]}"); } } } } } } }
运行程序
编译并运行上述C#程序,你将看到控制台输出如下信息:
EmployeeID: 1, FirstName: John, LastName: Doe, Department: HR
常见问题解答(FAQs)
Q1: 如果存储过程有多个参数怎么办?
A1: 你可以通过command.Parameters.AddWithValue 方法添加多个参数,如果存储过程GetEmployeeByIDAndDepartment 需要两个参数@EmployeeID 和@Department,你可以这样添加参数:
command.Parameters.AddWithValue("@EmployeeID", employeeID); command.Parameters.AddWithValue("@Department", "HR");
Q2: 如果存储过程返回多行结果怎么办?
A2: 上述代码已经展示了如何处理多行结果,使用SqlDataReader 的Read 方法循环读取每一行数据,并通过列名或索引访问每一列的值。
小编有话说
通过这个简单的实例,我们可以看到在C#中调用存储过程并不复杂,关键在于正确设置数据库连接字符串、命令类型、参数以及处理结果集,希望这个实例能帮助你快速上手在C#中调用存储过程,如果你有任何疑问或需要进一步的帮助,请随时留言。
本站发布或转载的文章及图片均来自网络,其原创性以及文中表达的观点和判断不代表本站,有问题联系侵删!
本文链接:http://www.xixizhuji.com/fuzhu/396776.html