演示者如何了解受DAL方法影响的行

本文关键字:DAL 方法 影响 了解 何了解 | 更新日期: 2023-09-27 18:17:14

我使用MVP模式,异常在演示者中处理。用户消息(如"Update Successful", "No matching records in DB"等)将由一个单独的UserMassage服务类生成,该服务类可供演示者使用。(因为消息传递是演示者的责任)

所以我只是想知道演示者如何知道DAL方法是否更新/删除了行或失败?

我目前的方法显示在DataService类中的示例DAL方法

    public void DeletePoint(string pid)
    {
        string updateStatement = "IF NOT EXISTS (SELECT PID FROM Attendance WHERE PID = @pid )" + 
                                 "UPDATE Point SET Point.deleted = GETDATE() WHERE PID = @pid";
        using (SqlConnection sqlConnection = new SqlConnection(db.ConnectionString))
        using (SqlCommand sqlCommand = new SqlCommand(updateStatement, sqlConnection))
        {
            sqlCommand.Parameters.Add("@pid", SqlDbType.VarChar).Value = pid;
            sqlConnection.Open();
            var RowsAffected = sqlCommand.ExecuteNonQuery();
            if (RowsAffected > 0)
            {
                throw new Exception("Updated Sucessfully");
            }
            Else
            {
                throw new Exception("Update was not Successful");
            }
        }
    }

演示者如何了解受DAL方法影响的行

您可以使用@@ROWCOUNT来获取数据库中受影响的行数。然后在您的DAL方法中将此返回给调用DAL的演示者或服务。