begin tran ok --开始一个事务 OK delete from rxqz where qz= 'rx015 ' --删除数据 save tran bcd --保存一个事务点 命名为 bcd update sz set name='李丽s' where name= '李丽'--修改数据 if @@error=0 --判断修改数据有没有出错 begin --如果出错 rollback tran bcd -- 回滚事务到 BCD 的还原点 commit tran ok --提交事务 end else --出错 commit tran ok --提交事务 @@error 是一个内置的全局变量,为0表示最近的一次操作没有错误. 你好像是用错了吧
ALTER PROCEDURE [dbo].[SO_BLOG_UPDATE_USER] @username varchar(50) =null, @blogname varchar(50) =null, @headimg varchar(50) =null, @summary varchar(200) =null, @blogtitle varchar(50) =null, @address varchar(50) =null, @birthday datetime=null, @gender bit=1, @keepsecret bit=0 as set nocount on begin BEGIN TRANSACTION update blog_user set blogname=@blogname,headimg=@headimg,summary=@summary,blogtitle=@blogtitle,address=@address,birthday=@birthday,gender=@gender,keepsecret=@keepsecret where username=@username IF @@error=0 begin COMMIT TRANSACTION select 1 as ResultValue end ELSE begin ROLLBACK TRANSACTION select 0 as ResultValue end return end直接像select语句一样取第一行第一列就好了。 @return 应该是sql server默认的还回值,不需要显式的声明为out put类型的参数的。
应该是
IF @@error==0
delete from rxqz where qz= 'rx015 ' --删除数据
save tran bcd --保存一个事务点 命名为 bcd
update sz set name='李丽s' where name= '李丽'--修改数据
if @@error=0 --判断修改数据有没有出错
begin --如果出错
rollback tran bcd -- 回滚事务到 BCD 的还原点
commit tran ok --提交事务
end
else --出错
commit tran ok --提交事务
@@error 是一个内置的全局变量,为0表示最近的一次操作没有错误.
你好像是用错了吧
conn.Open();
SqlCommand MyCommand = new SqlCommand("MYSQL", conn);
MyCommand.CommandType = CommandType.StoredProcedure;
MyCommand.Parameters.Add(new SqlParameter("@a", SqlDbType.Int));
MyCommand.Parameters["@a"].Value = 10;
MyCommand.Parameters.Add(new SqlParameter("@b", SqlDbType.Int));
MyCommand.Parameters["@b"].Value = 20;
MyCommand.Parameters.Add(new SqlParameter("@return", SqlDbType.Int));
MyCommand.Parameters["@return"].Direction = ParameterDirection.ReturnValue;
MyCommand.ExecuteNonQuery();
Response.Write(MyCommand.Parameters["@return"].Value.ToString());参考:
http://www.cnblogs.com/souso/archive/2009/09/09/1563104.html
SqlCommand cmd = new SqlCommand("SO_BLOG_UPDATE_USER", conn);
cmd.CommandType = CommandType.StoredProcedure;//指是是存储过程 //添加参数
cmd.Parameters.Add("@username", SqlDbType.VarChar, 50).Value ="";
cmd.Parameters.Add("@blogname", SqlDbType.VarChar, 50).Value ="";
cmd.Parameters.Add("@headimg", SqlDbType.VarChar, 50).Value ="";
cmd.Parameters.Add("@summary", SqlDbType.VarChar, 200).Value = "";
cmd.Parameters.Add("@blogtitle", SqlDbType.VarChar, 50).Value ="";
cmd.Parameters.Add("@address", SqlDbType.VarChar, 50).Value ="";
cmd.Parameters.Add("@birthday", SqlDbType.DateTime, 40).Value = "";
cmd.Parameters.Add("@gender", SqlDbType.Bit).Value = 1;
cmd.Parameters.Add("@keepsecret", SqlDbType.Bit).Value = 0;
cmd.Parameters.Add("@return", SqlDbType.Int, 4).Direction = ParameterDirection.Output;
这中间就是你要写的代码
conn.Close();//关闭连接
int sum = int.Parse(cmd.Parameters["@return"].Value.ToString());//获得存储过程返回值
SqlCommand cmd = new SqlCommand("SO_BLOG_UPDATE_USER", conn);
cmd.CommandType = CommandType.StoredProcedure;//指是是存储过程 //添加参数
cmd.Parameters.Add("@username", SqlDbType.VarChar, 50).Value ="";
cmd.Parameters.Add("@blogname", SqlDbType.VarChar, 50).Value ="";
cmd.Parameters.Add("@headimg", SqlDbType.VarChar, 50).Value ="";
cmd.Parameters.Add("@summary", SqlDbType.VarChar, 200).Value = "";
cmd.Parameters.Add("@blogtitle", SqlDbType.VarChar, 50).Value ="";
cmd.Parameters.Add("@address", SqlDbType.VarChar, 50).Value ="";
cmd.Parameters.Add("@birthday", SqlDbType.DateTime, 40).Value = "";
cmd.Parameters.Add("@gender", SqlDbType.Bit).Value = 1;
cmd.Parameters.Add("@keepsecret", SqlDbType.Bit).Value = 0;
cmd.Parameters.Add("@return", SqlDbType.Int, 4).Direction = ParameterDirection.Output;
这中间就是你要写的代码
conn.Close();//关闭连接
int sum = int.Parse(cmd.Parameters["@return"].Value.ToString());//获得存储过程返回值
@username varchar(50) =null,
@blogname varchar(50) =null,
@headimg varchar(50) =null,
@summary varchar(200) =null,
@blogtitle varchar(50) =null,
@address varchar(50) =null,
@birthday datetime=null,
@gender bit=1,
@keepsecret bit=0
as
set nocount on
begin
BEGIN TRANSACTION
update blog_user set blogname=@blogname,headimg=@headimg,summary=@summary,blogtitle=@blogtitle,address=@address,birthday=@birthday,gender=@gender,keepsecret=@keepsecret where username=@username
IF @@error=0
begin
COMMIT TRANSACTION
select 1 as ResultValue
end
ELSE
begin
ROLLBACK TRANSACTION
select 0 as ResultValue
end
return
end直接像select语句一样取第一行第一列就好了。 @return 应该是sql server默认的还回值,不需要显式的声明为out put类型的参数的。
conn.Open();
SqlCommand MyCommand = new SqlCommand("MYSQL", conn);
MyCommand.CommandType = CommandType.StoredProcedure;
MyCommand.Parameters.Add(new SqlParameter("@a", SqlDbType.Int));
MyCommand.Parameters["@a"].Value = 20;
MyCommand.Parameters.Add(new SqlParameter("@b", SqlDbType.Int));
MyCommand.Parameters["@b"].Direction = ParameterDirection.Output;
MyCommand.ExecuteNonQuery();
Response.Write(MyCommand.Parameters["@b"].Value.ToString());