ASP.NET中调用存储过程后,运行无错误,但数据库没有任何改变
ASP.NET中调用存储过程后,运行无错误,但数据库没有任何改变,请大家帮我看看
调用程序:
private void btnAssetSave_Click(object sender, System.EventArgs e)
{
SqlConnection conn=DB.createConnection ();
SqlDataAdapter da=new SqlDataAdapter() ;
da.SelectCommand = new SqlCommand ();
da.SelectCommand.Connection =conn;
da.SelectCommand.CommandText = "AssetPda ";
da.SelectCommand .CommandType =CommandType.StoredProcedure ;
SqlParameter param1 = new SqlParameter( "@code ", SqlDbType.NVarChar);
param1.Direction = ParameterDirection.Input;
param1.Value = this.txtUsercode_asset .Text .ToString ();
SqlParameter param2 = new SqlParameter( "@IMEI ", SqlDbType.NVarChar);
param2.Direction = ParameterDirection.Input;
param2.Value = this.ddlUnassetPda .SelectedItem .Value ;
da.SelectCommand.Parameters.Add(param1);
da.SelectCommand.Parameters.Add(param2);
this.lbtip.Text = "分配成功! ";
this.P_AssetPda.Visible =false;
}
存储过程:
CREATE PROCEDURE dbo.AssetPda
(@code nvarchar(10),
@IMEI nvarchar(25))
AS
begin transaction
SAVE TRANSACTION SAG
if (@@error <> 0)
goto failed
update TblAllHwUser set AssetPda=@IMEI where Employeecode=@code;
if (@@error <> 0)
goto failed
update TblPDA set status= '使用中 ' where IMEI=@IMEI
if (@@error <> 0)
goto failed
commit transaction
goto finished
failed:
rollback transaction SAG
finished:
/* SET NOCOUNT ON */
RETURN
我的存储过程在数据库中运行是没有问题的,但是用前台调用的话就是没有效果,麻烦大家帮我看看。谢谢。
------解决方案--------------------直接定义一个SqlCommand。
定义两个变量。
将变量加入到Command中。
Command.exenonquery()
------解决方案--------------------cmd.ExecuteNonQuery();//怎么没有
其实我建议使用“exec 存储过程名 参数1 参数2 等”
begin transaction
SAVE TRANSACTION SAG
update TblAllHwUser set AssetPda=@IMEI where Employeecode=@code;
update TblPDA set status= '使用中 ' where IMEI=@IMEI
if (@@error <> 0)
goto failed
commit transaction
goto finished
failed:
rollback transaction SAG
finished: