`
chenxueyong
  • 浏览: 336149 次
  • 性别: Icon_minigender_1
  • 来自: 武汉
社区版块
存档分类
最新评论

存储过程调用另一种方式

阅读更多

  public static String AdminUserLogin(string username, string password)
    {
    

        //创建数据库连接和命令的对象
        SqlConnection myConnection = new SqlConnection(ConfigurationManager.ConnectionStrings["ConnectionString"].ConnectionString);
        SqlCommand myCommand = new SqlCommand("AdminUserLogin", myConnection);

        //指明Sql命令的操作类型是使用存储过程
        myCommand.CommandType = CommandType.StoredProcedure;

        //给存储过程添加参数
        SqlParameter parameterUsername = new SqlParameter("@UserName", SqlDbType.NVarChar, 50);
        parameterUsername.Value = username;
        myCommand.Parameters.Add(parameterUsername);

        SqlParameter parameterPassword = new SqlParameter("@Password", SqlDbType.NVarChar, 50);
        parameterPassword.Value = password;
        myCommand.Parameters.Add(parameterPassword);

        SqlParameter parameterUserID = new SqlParameter("@ID", SqlDbType.Int, 4);
        //指出该参数是存储过程的OUTPUT参数
        parameterUserID.Direction = ParameterDirection.Output;
        myCommand.Parameters.Add(parameterUserID);

        //打开数据库连接
        myConnection.Open();
        //进行数据库操作
        myCommand.ExecuteNonQuery();
        //关闭数据库连接
        myConnection.Close();

        //使用存储过程的输出参数返回UserID并赋值给userId
        int userId = (int)(parameterUserID.Value);
        //判断userId的值,如果为零则说明登录失败,函数返回空字符串,
        //反之把userId转换为字符串返回。
        if (userId == 0)
        {
            return null;
        }
        else
        {
            return userId.ToString();
        }
    }

 

 

CREATE Procedure AdminUserLogin
(
    @UserName   nvarchar(50),
    @Password   nvarchar(50),
    @ID int OUTPUT
)
AS

SELECT
    @ID =ID
   
FROM
    UserInfo
   
WHERE
    User_Name = @UserName
  AND
    Password = @Password

IF @@Rowcount < 1
SELECT
    @ID = 0
GO

分享到:
评论

相关推荐

    调用存储过程另一种方法

    调用存储过程另一种方法例子 List&lt;SqlParameter&gt; paras = new List(); paras.Add(newSqlParameter("@intAccountId",Convert.ToInt32(DropDownList3.SelectedValue))); 存储过程参数变量-------------》变量赋值。...

    oracle 在一个存储过程中调用另一个返回游标的存储过程

    第一种情况是返回的游标是某个具体的表或视图的数据,如: SQL-Code: 代码如下: CREATE OR REPLACE PROCEDURE P_TESTA ( PRESULT OUT SYS_REFCURSOR ) AS BEGIN OPEN PRESULT FOR SELECT * FROM USERS; END P_TESTA;...

    java调用存储过程

    这种调用是用一种换码语法来写的,有两种形式:一种形式带结果参,另一种形式不带结果参数。结果参数是一种输出 (OUT) 参数,是已储存过程的返回值。两种形式都可带有数量可变的输入(IN 参数)、输出(OUT 参数...

    c#中两种不同的存储过程调用与比较

    存储过程的调用在B/S系统中用的很多。... 存储过程简介 简单的说,存储过程是由一些SQL语句和控制语句组成的被封装起来的过程,它驻留在数据库中,可以被客户应用程序调用,也可以从另一个过程或触发器调用。

    用java调用oracle存储过程总结

    另一种类似于INSERT或DELETE查询,它不返回数据,只是执行一个动作。有的服务器允许同一个存储过程既可以返回数据又可以执行动作。  2、什么时候需要用存储过程  如果服务器定义了存储过程,应当根据需要决定...

    asp sqlserver 执行存储过程返回记录集报对象关闭时不允许操作

    另一种是可以返回多个值,存储这些值的变量名称需要在调用参数中先行指定。 这个例子要处理多种参数,输入参数,输出参数,返回记录集以及一个直接返回值(够全了吧?) 存储过程如下: 代码如下: use pubs GO — ...

    SQL经典面试题目

    如,某表上的触发器上包含对另一个表的数据操作,而该操作又会导致该表触发器被触发。 2。什么是存储过程?用什么来调用? 答:存储过程是一个预编译的SQL语句,优点是允许模块化的设计,就是说只需创建一次...

    Blackbuck:java中的一个游戏网络库,专注于进行异步方法调用

    Fast 使用非阻塞 I/O Compression 利用另一个库以尽可能少的字节数存储数字Security 没有正确的游戏幻数的数据包将被忽略并关闭错误的连接预期在特定客户端状态下接收但未收到的消息可能导致关闭连接、日志记录、...

    最全C#基础类库

    8.向数据库里插入图像格式的字段(和上面情况类似的另一种实例) 9.执行一条计算查询结果语句,返回查询结果(object)。 10.执行查询语句,返回MySqlDataReader ( 注意:调用该方法后,一定要对MySqlDataReader进行...

    SQLHelper.cs

    除这些重载以外,除 ExecuteXmlReader 之外的其他方法还提供了另一种重载:允许将连接信息作为连接字符串而不是连接对象来传递,如下面的方法签名所示: [Visual Basic] Execute* (ByVal connectionString As String...

    .net数据访问类 SQL Helper 类

    除这些重载以外,除 ExecuteXmlReader 之外的其他方法还提供了另一种重载:允许将连接信息作为连接字符串而不是连接对象来传递,如下面的方法签名所示: [Visual Basic] Execute* (ByVal connectionString As String...

    VC访问Postgre数据库

    VC访问数据库有两种方法:一种是使用CDatabase和CRecord对象;另一种是利用ADO技术。 这个程序实现了Postgre数据库的读写,以及存储过程的调用。

    react-callable:可调用组件,可在应用程序中的任何位置调用

    此库为此问题提出了另一种方法。 该库的主要目的是允许创建任何类型的可调用组件。 理想情况下,这意味着您可以创建自己的可调用模式对话框,不同屏幕侧的消息,工具提示,弹出窗口等。 这并不意味着,react-...

    C语言程序设计标准教程

    'Next of Page在C语言中,可以用以下几种方式调用函数: 1.函数表达式  函数作表达式中的一项出现在表达式中,以函数返回值参与表达式的运算。这种方式要求函数是有返回值的。例如: z=max(x,y)是一个赋值表达式,...

    [详细完整版]4数据库.txt

    答:讲查询封装进存储过程中,通过调用存储过程实现动态调用;表结构发生变化后修改相应的存储过程即可再不修改程序的情况下实现查询。 2、 如何优化数据库,如何提高数据库的性能?答:优化数据库主要是优化查询...

    深入理解C++中变量的存储类别和属性

    变量还有另一种属性——存储期(storage duration,也称生命期)。存储期是指变量在内存中的存在期间。这是从变量值存在的时间角度来分析的。存储期可以分为静态存储期(static storage duration)和动态存储期(dynamic ...

    go语言支持venus框架的调用.rar

    Kubernetes是另一个流行的容器技术,它是一个开源的容器编排系统,可以帮助开发人员管理和调度多个容器的部署。 Go语言也提供了对Kubernetes的支持,可以使用Kubernetes API创建和管理容器,以及监视和扩展整个集群...

    PHP编程基础--PHP常量.ppt

    获取常量的方法有两种:一种是直接使用常量名获取对应的值,另一种是使用constant()函数获取对应的值。 一、常量的定义及获取 constant()函数的语法格式如下: 参数$name为需要获取常量的名称,也可以为存储常量名...

    中间件期末考超强文档合集.rar

    1.RPC:远程过程调用是从一台机器或一个进程调用另一台机器或另一个进程的服务或方法。 2.RMI:远程方法激活,使软件开发人员能够开发这样的分布式程序:在这个分布式程序中,其远程对象的方法能够被运行在不同主机上...

Global site tag (gtag.js) - Google Analytics