当前位置:首页 > 行业动态 > 正文

c# sql存储过程教程

在C#中,可通过SqlConnection连接数据库,用SqlCommand设置存储过程名称及参数,再执行ExecuteNonQuery等方法调用存储过程。

C# 调用 SQL 存储过程教程

在C#中调用SQL存储过程是一个常见的操作,它允许你将业务逻辑封装在数据库端,从而提高应用程序的性能和可维护性,以下是详细的步骤和示例代码:

一、准备工作

1、创建存储过程

你需要在SQL Server中创建一个存储过程,我们创建一个名为GetEmployeeByID的存储过程,用于根据员工ID获取员工信息。

“`sql

CREATE PROCEDURE GetEmployeeByID

@EmployeeID INT

AS

BEGIN

SELECT * FROM Employees WHERE EmployeeID = @EmployeeID

END

   这个存储过程接受一个参数@EmployeeID,并返回与该ID匹配的员工记录。
2、设置连接字符串
   在你的C#项目中,需要配置数据库连接字符串,这通常在App.configWeb.config文件中进行设置。
   ```xml
    <connectionStrings>
      <add name="MyConnection" connectionString="Server=myServerAddress;Database=myDataBase;User Id=myUsername;Password=myPassword;" />
    </connectionStrings>

确保替换myServerAddressmyDataBasemyUsernamemyPassword为你的实际数据库服务器地址、数据库名称、用户名和密码。

二、在C#中调用存储过程

1、引入必要的命名空间

在你的C#代码文件顶部,需要引入以下命名空间:

“`csharp

using System;

using System.Data;

using System.Data.SqlClient;

2、编写调用存储过程的代码
   以下是一个示例代码,演示如何在C#中调用前面创建的GetEmployeeByID存储过程:
   ```csharp
    class Program
    {
        static void Main()
        {
            // 从配置文件中获取连接字符串
            string connectionString = System.Configuration.ConfigurationManager.ConnectionStrings["MyConnection"].ConnectionString;
            using (SqlConnection connection = new SqlConnection(connectionString))
            {
                try
                {
                    connection.Open();
                    Console.WriteLine("Connection Opened");
                    // 创建SqlCommand对象,并指定存储过程名称
                    SqlCommand command = new SqlCommand("GetEmployeeByID", connection);
                    command.CommandType = CommandType.StoredProcedure;
                    // 添加参数并设置其值
                    SqlParameter parameter = new SqlParameter("@EmployeeID", SqlDbType.Int);
                    parameter.Value = 1; // 假设我们要查询ID为1的员工
                    command.Parameters.Add(parameter);
                    // 执行命令并读取结果
                    SqlDataReader reader = command.ExecuteReader();
                    while (reader.Read())
                    {
                        Console.WriteLine(String.Format("{0}, {1}", reader["EmployeeID"], reader["Name"]));
                    }
                    reader.Close();
                }
                catch (Exception ex)
                {
                    Console.WriteLine("Error: " + ex.Message);
                }
            }
        }
    }

在这个示例中,我们首先从配置文件中获取连接字符串,并使用它来创建SqlConnection对象,我们创建一个SqlCommand对象,并指定要调用的存储过程名称,我们添加一个参数到命令中,并设置其值为1(表示我们要查询ID为1的员工),我们执行命令并读取结果,将员工ID和姓名输出到控制台。

三、注意事项

1、异常处理

在实际应用中,务必添加适当的异常处理代码,以应对可能出现的数据库连接失败、存储过程执行错误等情况,在上面的示例中,我们已经使用了try-catch块来捕获和处理异常。

2、性能优化

如果存储过程返回大量数据,建议使用分页技术来减少网络传输量和内存占用,可以在存储过程中添加分页参数,并在C#代码中相应地设置这些参数。

3、安全性考虑

避免在代码中硬编码数据库连接字符串和敏感信息,建议使用加密技术来保护这些信息,并将其存储在安全的位置,还要确保对用户输入进行验证和过滤,以防止SQL注入攻击。

通过遵循以上步骤和注意事项,你可以在C#中成功调用SQL存储过程,并实现高效的数据库访问和数据处理,不断实践和优化,将有助于提升你的开发技能和应用程序的性能。

0