C#调用Sqlserver存储过程获取DataSet示例

5星 · 超过95%的资源 需积分: 50 143 下载量 140 浏览量 更新于2024-09-18 收藏 3KB TXT 举报
本文主要介绍了如何在C#中执行SQL Server存储过程并返回DataSet作为结果。示例代码展示了两种情况,一个是使用SQL Server数据库,另一个是使用PostgreSQL数据库。 在.NET开发中,当我们需要调用数据库中的存储过程,并将结果集填充到DataSet对象中时,可以按照以下步骤进行: 首先,我们需要创建一个SqlConnection对象,它代表与SQL Server的连接。在示例代码中,使用了`new SqlConnection("connectionString")`来创建连接,这里的connectionString包含了数据库的名称(initial catalog)、数据源(datasource)、用户名(uid)和密码(pwd)。确保这些值与实际的数据库配置相匹配。 接着,打开数据库连接,通过`con.Open()`实现。这使得我们能够执行数据库操作。 然后,创建一个SqlDataAdapter对象,它是用于填充DataSet的适配器。在本例中,`new SqlDataAdapter("proc1", con)`表示我们将调用名为"proc1"的存储过程,并传入数据库连接(con)。 设置SqlCommand的CommandType属性为`CommandType.StoredProcedure`,表明我们要执行的是存储过程,而不是SQL语句。接着,添加参数到SqlCommand对象,如`da.SelectCommand.Parameters.Add(new SqlParameter("@inputNum", num))`,这将`@inputNum`作为输入参数传递给存储过程,其值为变量`num`。 创建一个新的DataTable对象,用于接收存储过程的输出。通过`da.Fill(dt)`,将存储过程的结果填充到DataTable(dt)中。 最后,关闭数据库连接并返回填充后的DataTable,即`return dt`。 对于PostgreSQL数据库,类似地,我们需要创建一个NpgsqlConnection对象,然后使用NpgsqlDataAdapter来执行存储过程。在示例中,创建连接字符串和打开连接的方式与SQL Server类似,只是数据库提供者不同。同时,NpgsqlDataAdapter的构造函数也需要存储过程的名称。虽然没有展示具体的参数添加,但在处理PostgreSQL存储过程时,也需要添加相应的参数。 无论是SQL Server还是PostgreSQL,执行存储过程并返回DataSet的基本步骤相似,主要区别在于使用的数据库连接类和适配器类。理解这个过程对于任何.NET开发者来说都是至关重要的,特别是在处理大量数据或需要复杂数据库操作的场景下。