`
niunan
  • 浏览: 723766 次
  • 性别: Icon_minigender_1
  • 来自: 南宁
社区版块
存档分类
最新评论

.NET用使用存储过程获取输出参数的代码示例!

    博客分类:
  • .NET
阅读更多
    在网上也找到许多关于.NET中使用存储过程获取输出参数的代码,但怎么看怎么都是记不住,还是自己亲自实践一遍后再记录下来,这样才能记得住,必竟自己做过的东西是比较难忘记的!!!
    步骤如下:
    ①建立数据库logintest,在数据库中建立表User.

     向建立的表中添加几条测试数据.
    ②在数据库中建立存储过程:
USE [logintest]
GO
-- =============================================
-- Author:		牛腩
-- Create date: 2008-10-21 14:01
-- Description:	通过传入的uid获取用户姓名
-- =============================================
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO
CREATE PROCEDURE [dbo].[GetUNameById]
@uid int,
@name varchar(50) output
AS
BEGIN
	select @name=uname from [User] where uid=@uid
END

    ③在VS中建立一个测试页面ProcTest.aspx,在ProcTest.aspx.cs中导入命名空间
using System.Data;
using System.Data.SqlClient;

    ④在Page_Load方法里写入如下代码:
 // 建立连接字符串,在正式项目中可放在web.config中
        string connStr = "server=niunan\\sqlexpress;uid=sa;pwd=123456;database=logintest";
        // 连接数据库
        SqlConnection conn = new SqlConnection(connStr);

        try
        {
            // 打开数据库连接
            conn.Open();
            // 创建用于执行数据库操作的命令对象, GetUNameById为存储过程名称
            SqlCommand cmd = new SqlCommand("GetUNameById", conn);
            // 设置执行命令的方式为存储过程
            cmd.CommandType = CommandType.StoredProcedure;

            // 向命令对象添加存储过程所需要的参数
            cmd.Parameters.Add("@uid", SqlDbType.Int);
            // 设置要传入到存储过程的参数值
            cmd.Parameters["@uid"].Value = 2;

            // 添加存储过程中的输出参数,如果是字符型的必须定义长度
            cmd.Parameters.Add("@name", SqlDbType.VarChar, 50);
            // 设置参数为output输出参数
            cmd.Parameters["@name"].Direction = ParameterDirection.Output;

            // 执行存储过程
            cmd.ExecuteReader();

            // 获取执行存储过程后的输出参数
            string name = cmd.Parameters["@name"].Value.ToString();

            Response.Write(name);
        }
        catch (Exception ex)
        {
            Response.Write(ex.Message);
            if (conn.State == ConnectionState.Open)
            {
                conn.Close();
            }
        }
        finally
        {
            if (conn.State == ConnectionState.Open)
            {
                conn.Close();
            }
        } 

    运行ASPX页面,则能够看到执行存储过程后返回的结果!
    需要注意的是如果输出参数是varchar类型的话则必须定义长度,否则会出错,如果输出参数是数字型的话就不必定义长度了!
    下面是完整的ProcTest.aspx.cs的源码:
using System;
using System.Collections.Generic;
using System.Linq;
using System.Web;
using System.Web.UI;
using System.Web.UI.WebControls;
using System.Data;
using System.Data.SqlClient;

public partial class ProcTest : System.Web.UI.Page
{
    protected void Page_Load(object sender, EventArgs e)
    {
        // 建立连接字符串,在正式项目中可放在web.config中
        string connStr = "server=niunan\\sqlexpress;uid=sa;pwd=123456;database=logintest";
        // 连接数据库
        SqlConnection conn = new SqlConnection(connStr);

        try
        {
            // 打开数据库连接
            conn.Open();
            // 创建用于执行数据库操作的命令对象, GetUNameById为存储过程名称
            SqlCommand cmd = new SqlCommand("GetUNameById", conn);
            // 设置执行命令的方式为存储过程
            cmd.CommandType = CommandType.StoredProcedure;

            // 向命令对象添加存储过程所需要的参数
            cmd.Parameters.Add("@uid", SqlDbType.Int);
            // 设置要传入到存储过程的参数值
            cmd.Parameters["@uid"].Value = 2;

            // 添加存储过程中的输出参数
            cmd.Parameters.Add("@name", SqlDbType.VarChar, 50);
            // 设置参数为output输出参数
            cmd.Parameters["@name"].Direction = ParameterDirection.Output;

            // 执行存储过程
            cmd.ExecuteReader();

            // 获取执行存储过程后的输出参数
            string name = cmd.Parameters["@name"].Value.ToString();

            Response.Write(name);
        }
        catch (Exception ex)
        {
            Response.Write(ex.Message);
            if (conn.State == ConnectionState.Open)
            {
                conn.Close();
            }
        }
        finally
        {
            if (conn.State == ConnectionState.Open)
            {
                conn.Close();
            }
        } 
    }
}
分享到:
评论

相关推荐

    NET用使用存储过程获取输出参数的代码示例![借鉴].pdf

    总结来说,这个示例展示了如何在.NET环境中使用存储过程,特别是如何处理输出参数。理解并熟练运用这些步骤对于任何.NET开发者来说都是至关重要的,因为它涉及到数据库交互和数据获取的关键环节。通过实践和记录,...

    asp.net调用输出参数存储过程

    在这个场景中,"asp.net 调用输出参数存储过程" 是一个关键知识点,意味着我们要讨论如何在 ASP.NET 中调用包含输出参数的数据库存储过程。输出参数允许存储过程将值返回给调用者,这对于传递计算结果或状态信息非常...

    asp.net 用存储过程实现分页(附代码)

    本教程将详细讲解如何利用存储过程在ASP.NET中实现分页功能,并提供相应的代码示例。 一、分页原理 分页的核心思想是每次只从数据库中获取一部分数据,而不是一次性加载所有数据。这可以通过设置“开始位置”(偏移...

    ASP.NET中调用存储过程方法

    - 设置参数:根据存储过程的输入/输出参数,使用SqlParameter对象添加到SqlCommand的Parameters集合中。 - 执行命令:调用SqlCommand对象的ExecuteNonQuery(无返回值)或ExecuteScalar(返回单个值)方法,或者...

    .net创建存储过程函数

    这个示例中,我们创建了一个不返回值的存储过程,仅修改数据而无输出参数。然而,还可以根据需要创建返回值或输出参数的存储过程。例如,可以创建一个返回特定记录集的函数,或者一个通过输出参数返回计算结果的存储...

    使用 ADO.NET 和 C# .NET 调用带参数的存储过程

    通过以上分析和示例,我们可以看到,使用ADO.NET与C# .NET调用带参数的存储过程不仅能够提高应用程序的性能,还能增强安全性,简化复杂数据处理流程。掌握这一技能,对于任何从事数据库操作和应用开发的IT专业人士来...

    在.NET中调用Oracle存储过程经验总结.doc

    上述代码展示了如何在.NET中调用一个包含输入和输出参数的Oracle存储过程。需要注意的是,OracleClient要求参数名称必须与存储过程中定义的参数名称完全一致。这是OracleClient的一个限制,相比之下,使用OleDb则...

    带输出参数的存储过程

    例如,在C#中,可以使用ADO.NET的SqlCommand对象来调用存储过程并获取输出参数的值: ```csharp using (SqlConnection conn = new SqlConnection("your_connection_string")) { conn.Open(); SqlCommand cmd = ...

    使用SQLHelper类调用带输出、返回参数的存储过程

    以下是一个使用`SQLHelper`类调用带有输出参数的存储过程的示例代码片段: ```csharp using System.Data.SqlClient; public static void CallStoredProcedure() { string connectionString = "your_connection_...

    ADO.NET存储过程参数生成-SQL版源代码

    ADO.NET存储过程参数生成SQL版源代码是一种用于简化数据库交互的工具,特别是在处理大量数据或执行复杂业务逻辑时,存储过程能提供更好的性能和安全性。本文将深入探讨ADO.NET、C#以及存储过程的相关知识,并结合...

    在.net中调用存储过程的另一种方法

    本文将详细介绍一种在.NET中调用存储过程的非典型方法,通过使用ADO.NET的`OleDbCommand`对象来实现。这种方法适用于需要与SQL Server进行交互的.NET应用程序。 首先,我们需要创建一个存储过程。以下是一个名为`...

    .net 分页 输出Html Sql Server 存储过程 前台显示

    在.NET代码中,你可以调用这个存储过程并传递参数,如下所示(假设使用ADO.NET): ```csharp using (SqlConnection conn = new SqlConnection(connectionString)) { conn.Open(); SqlCommand cmd = new ...

    .Net的存储过程

    "存储过程(增删改查)"这个文件可能包含的就是这些具体的C#或VB.NET代码示例。 总之,.NET中的存储过程使用不仅可以提升数据库操作的效率,还可以增强代码的可读性和可维护性。通过合理设计和应用存储过程,开发者...

    ASP.NET 使用FFmpeg实现MP4转换M3U8示例源码

    下面是一个简化的代码示例,展示了如何使用FFmpeg进行转换: ```csharp using System.Diagnostics; public void ConvertMp4ToM3u8(string inputFilePath, string outputFolderPath) { var processStartInfo = new...

    ASP.Net学习之常用SQL存储过程

    ASP.Net开发中,SQL存储过程扮演着重要的角色,尤其是在大型项目中,它们有助于提升数据库的安全性和SQL代码的执行效率。本文将深入探讨ASP.Net中如何利用SQL存储过程,并提供一些基础示例。 首先,了解存储过程的...

    asp.net中oracle 存储过程(图文)

    本文将深入探讨如何在ASP.NET环境中调用Oracle数据库中的存储过程,并展示一个具体的示例。 首先,存储过程是预编译的SQL语句集合,它们在数据库服务器上执行,而不是在应用程序中。这有助于减少网络流量,因为只需...

    在VB.NET中使用MS Access存储过程的例子

    如果你的存储过程有输出参数或返回值,你需要使用`OleDbParameter`对象设置适当的属性,如`Direction`。 然后,执行存储过程并获取结果集: ```vbnet Dim reader As OleDbDataReader = command.ExecuteReader() ...

    VB.Net 访问存储过程

    以下是一个简单的示例,演示如何在VB.Net中调用存储过程: ```vbnet Imports System.Data.SqlClient ' 创建数据库连接字符串 Dim connectionString As String = "Server=myServerAddress;Database=myDataBase;User...

    使用存储过程修改数据 (ADO.NET).txt

    本文将基于提供的文件信息,深入探讨如何利用ADO.NET框架调用存储过程来修改数据,重点解析创建存储过程、使用SqlDataAdapter以及处理输出参数的具体方法。 ### 创建存储过程 首先,我们关注存储过程的创建。示例...

    ASP C# C++ .NET中统一的存储过程调用方法.doc

    存储过程是预编译的SQL代码集合,存储在数据库中,可以接受输入参数,返回输出参数和结果集。在.NET中,我们通常使用SqlConnection对象连接数据库,SqlCommand对象执行SQL命令(包括存储过程),并使用SqlParameter...

Global site tag (gtag.js) - Google Analytics