使用ASP.NET C#中的存储过程更新数据库

时间:2019-07-05 18:56:26

标签: c# asp.net sql-server stored-procedures

我尝试使用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中使用存储过程的新手

0 个答案:

没有答案