在添加用户的一个存储过程里我有一个查询用户名是否存在的一个语句,
如果没有就执行添加,有的话就不执行,如何在asp.net中取得返回值来确定是否添加了用户呢?小弟请大家帮帮忙指点一下了,谢谢
------解决方案--------------------------------------------------------
declare @Result output tinyint
楼主可以设置个输出的参数,例如@Result 当@Result=1表示成功,@Result=0表示失败. 把这个输出参数程序中,就可以做判断了.
------解决方案--------------------------------------------------------
添加的话返回1 ,要不返回0 。在执行的时候判断一下不就行了。
------解决方案--------------------------------------------------------
在你的存储过程里返回@@identity
在后台接受这个返回值
int cout =cmd.ExecuteQuery()
去判断count> 则0插入了
参考代码:
SqlConnection conn = new SqlConnection( "server=.;uid=sa;pwd=1024;database=pubs ");
SqlCommand cmd = new SqlCommand( "proc_add ",conn);
cmd.CommandType = CommandType.StoredProcedure;
conn.Open();
int count = cmd.ExecuteNonQuery();
conn.Close();
if (count > 0)
{
//插入了
}
else
{
//没插入
}
存储过程:
create proc proc_add
as
insert into article values( 'aaaaaaa ')
return @@identity
go
------解决方案--------------------------------------------------------
create proc myproc @user char(12)
as
declare @finduser char(12)
select @finduser=username from user where username=@user
if (@finduser=null)
{
insert into user valuses(@user)
}
------解决方案--------------------------------------------------------
IF(EXISTS (SELECT TOP 1 FLD_ID FROM DMS_FOLDER WHERE FLD_ID=@FLD_ID))
BEGIN--1
RAISERROR( '用户已存在 ',12,1)
RETURN -1
END--1
之后在执行插入就可以了
------解决方案--------------------------------------------------------
----------存储过程
create proc myproc
@user char(12),
@ok int ouput
as
begin
if exists(select id from user where username=@user)
set @ok=1 --存在
else
begin
set @ok=0 --不存在
insert user(username)values(@user)
end
end