我尝试使用ASP.NET更新数据库。我有一个按钮,当我单击它时,代码应使用我编写的存储过程保存数据;但是,当我单击它时,它不会保存任何内容。
Mycode.aspx.cs
protected void Button2_Click(object sender, EventArgs e)
{
using (SqlConnection con = new SqlConnection(str))
{
con.Open();
using (SqlCommand update_item = new SqlCommand("UsuariosSistemaUpdate", con))
{
update_item.Parameters.Add("@ControlError", SqlDbType.VarChar).Value = "";
update_item.Parameters.Add("@UsuariosSistemaID", SqlDbType.Int).Value = TextBox5.Text;
update_item.Parameters.Add("@Nombre", SqlDbType.VarChar).Value = TextBox1.Text;
update_item.Parameters.Add("@Usuario", SqlDbType.VarChar).Value = TextBox2.Text;
update_item.Parameters.Add("@Password", SqlDbType.VarChar).Value = TextBox3.Text;
update_item.Parameters.Add("@Administrador", SqlDbType.Bit).Value = Convert.ToBoolean(CheckBox1.Checked);
update_item.Parameters.Add("@Email", SqlDbType.VarChar).Value = TextBox4.Text;
update_item.Parameters.Add("@Almacen", SqlDbType.Bit).Value = Convert.ToBoolean(CheckBox2.Checked);
update_item.Parameters.Add("@Activo", SqlDbType.Bit).Value = Convert.ToBoolean(CheckBox3.Checked);
update_item.CommandType = CommandType.StoredProcedure;
update_item.ExecuteNonQuery();
}
}
}
我的存储过程:
ALTER PROCEDURE [dbo].[UsuariosSistemaUpdate]
@ControlError VARCHAR(max) OUTPUT,
@UsuariosSistemaID INT,
@Nombre VARCHAR(100),
@Usuario VARCHAR(15),
@Password VARCHAR(15),
@Administrador BIT,
@Email VARCHAR(50),
@Almacen BIT,
@Activo BIT
AS
BEGIN
SET NOCOUNT ON;
BEGIN TRY
SET @ControlError = '';
UPDATE [dbo].[UsuariosSistema]
SET [Nombre] = @Nombre,
[Usuario] = @Usuario,
[Password] = @Password,
[Administrador] = @Administrador,
[Email] = @Email,
[Almacen] = @Almacen,
[Activo] = @Activo
WHERE
UsuariosSistemaID = @UsuariosSistemaID
END TRY
BEGIN CATCH
SET @ControlError = ERROR_MESSAGE();
INSERT INTO LogErrores (Numero, Mensaje, Procedimiento, Linea)
VALUES (ERROR_NUMBER(), ERROR_MESSAGE(), ERROR_PROCEDURE(), ERROR_LINE())
END CATCH;
END
在这里我需要一些帮助,当我单击按钮时,什么也没有发生,谁知道为什么?我是在ASP.NET中使用存储过程的新手