ADO.NET访问带参数的存储过程

1. 创建存储过程


--创建数据库Bank

create database Bank
go

--打开数据库

use Bank
go

--创建数据表Account

create table Account(
id int not null primary key,   --银行帐号
name nvarchar(20) not null,    --帐户名称
password varchar(20) not null, --密码
openDate Datetime,             --开户日期
balance numeric(10,2)          --余额
)

go

--添加测试数据

insert into Account values(1,'sun','sun',getdate(),10000);
go

--创建存储过程
--名称 up_isAccountIdExsit
--输入参数:id,帐号
--输出参数:result,符合条件数据行数
create procedure up_isAccountIdExsit
(
@id int,
@result int output
)
as
select @result=count(*) from Account where id=@id


--测试存储过程

declare @result int
execute up_isAccountIdExsit 2,@result output
select @result

 

2. C#程序编码

public bool isAccountIdExist(int id)
    {
        bool flag = false;
        cmd = new SqlCommand("up_isAccountIdExsit", con);
        cmd.CommandType = CommandType.StoredProcedure;
        // 注册输入参数@id,并设置参数值id
        cmd.Parameters.Add("@id",id);
        // 注册输出参数@result
        SqlParameter resultParameter= cmd.Parameters.Add("@result", SqlDbType.Int);
       // 参数类型为输出参数
        resultParameter.Direction = ParameterDirection.Output;

        try
        {
            con.Open();
            cmd.ExecuteNonQuery();
            //取输出参数值
            int i=int.Parse(resultParameter.Value.ToString());
            if (i > 0)
                flag = true;
        }
        catch (Exception e)
        {

            //Console.Write("异常出现:"+e.Message);
        }
        finally
        {
            cmd.Dispose();
            con.Close();
        }
        return flag;
    }

0
0
 
posted @ 2009-08-31 11:49  Andy-阿杰  阅读(183)  评论(0)    收藏  举报