下面我将详细讲解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技术站