asp.net实现调用存储过程并带返回值的方法

网络编程 2025-04-04 21:58www.168986.cn编程入门

在ASP.NET中,调用存储过程并获取返回值是一项常见的任务。下面,我们将结合实例,详细介绍如何实现这一过程。

我们需要了解存储过程的基本概念和它们在ASP.NET中的应用价值。存储过程是一种预编译的SQL代码块,可以在数据库中保存并多次调用。它们能够提高性能,减少网络流量,并增强数据安全性。在ASP.NET中,我们可以通过ADO.NET来调用存储过程并获取返回值。

假设我们有一个名为“GetCustomerInfo”的存储过程,它接受一个参数(例如客户ID),并返回一个结果集。下面是如何在ASP.NET中调用此存储过程的示例代码:

```csharp

// 创建数据库连接字符串

string connectionString = "你的数据库连接字符串";

// 创建数据库连接对象

SqlConnection connection = new SqlConnection(connectionString);

// 创建命令对象,并指定存储过程名称和参数

SqlCommand command = new SqlCommand("GetCustomerInfo", connection);

commandmandType = CommandType.StoredProcedure; // 指定为存储过程

// 添加参数

command.Parameters.AddWithValue("@CustomerId", 123); // 假设客户ID为123

// 打开数据库连接

connection.Open();

// 执行存储过程并获取返回值

SqlDataReader reader = command.ExecuteReader();

// 读取返回的结果集

while (reader.Read())

{

// 获取并处理每一行的数据,例如:

string customerName = reader["CustomerName"].ToString(); // 获取客户名称

// ... 其他操作 ...

}

// 关闭数据库连接和读取器

reader.Close();

connection.Close();

```

DataBase类

我们有一个基础的`DataBase`类,用于建立和管理数据库连接。

```csharp

public class DataBase

{

protected static SqlConnection BaseSqlConnection;

protected SqlCommand BaseSqlCommand;

public DataBase()

{

// 在此处初始化连接和命令对象

BaseSqlConnection = new SqlConnection();

BaseSqlCommand = new SqlCommand();

}

protected void OpenConnection()

{

if (BaseSqlConnection.State == ConnectionState.Closed)

{

try

{

string connectionString = ConfigurationManager.ConnectionStrings["productsunion"].ToString();

BaseSqlConnection.ConnectionString = connectionString;

BaseSqlCommand.Connection = BaseSqlConnection;

BaseSqlConnection.Open();

}

catch (Exception ex)

{

throw new Exception("数据库连接失败:" + ex.Message);

}

}

}

public void CloseConnection()

{

if (BaseSqlConnection.State == ConnectionState.Open)

{

BaseSqlConnection.Close();

BaseSqlConnection.Dispose();

BaseSqlCommand.Dispose();

}

}

public bool ExecuteProcReturnInt(string procName, params SqlParameter[] cmdParms)

{

try

{

OpenConnection();

if (cmdParms != null)

{

foreach (SqlParameter parameter in cmdParms)

{

if ((parameter.Direction == ParameterDirection.InputOutput || parameter.Direction == ParameterDirection.Input) && parameter.Value == null)

{

parameter.Value = DBNull.Value;

}

BaseSqlCommand.Parameters.Add(parameter);

}

BaseSqlCommandmandType = CommandType.StoredProcedure;

BaseSqlCommandmandText = procName;

BaseSqlCommand.ExecuteNonQuery();

return BaseSqlCommand.Parameters["Return"].Value.ToString() == "0"; // 根据返回值判断操作是否成功

}

else

{

return false;

}

}

catch

{

在浩瀚的数字世界中,我们找到了一个名为Cambrian的神奇之地。此刻,让我们一同跟随其步伐,它的独特魅力。Cambrian,它以其独特的方式,向我们展示了一个丰富多彩的虚拟世界。在这里,一切都是那么鲜活生动,仿佛置身于一个充满无限可能的奇幻世界。

此刻,Cambrian正在渲染名为“body”的版块。这不仅仅是一个简单的版块,更是一个充满创意和想象力的空间。在这个空间里,每一个元素都散发着独特的魅力,让人眼前一亮。这种魅力源自于Cambrian的理解——理解数字世界的韵律和节奏,理解人类对于虚拟世界的渴望和需求。

这个“body”,它是Cambrian的灵魂,也是其向世界展示自我魅力的舞台。在这里,你可以看到Cambrian的无限创意和独特风格。它以其独特的语言,向我们诉说着一个关于数字世界的故事。这个故事充满了惊奇、冒险、和创新,让人无法抗拒其魅力。

每一帧、每一秒,Cambrian都在为我们展示这个虚拟世界的精彩。它的渲染技术如此精湛,让人仿佛置身于一个真实的场景中。在这里,我们可以感受到每一丝细微的变化,每一个瞬间的美好。这种沉浸式的体验,让我们忘记了现实的束缚,让我们沉浸在这个充满奇幻的世界。

Cambrian的“body”,是一个充满生命力的存在。它不断地变化、不断地创新、不断地向前发展。这种生命力,让我们看到了数字世界的未来,看到了虚拟世界的无限可能。

Cambrian以其独特的魅力,为我们展现了一个充满奇幻和创意的虚拟世界。在这个世界里,我们可以自由地、自由地想象、自由地创新。让我们一起,跟随Cambrian的步伐,这个充满无限可能的数字世界吧!

Copyright © 2016-2025 www.168986.cn 狼蚁网络 版权所有 Power by