Je n'ai aucune erreur de ces morceaux de code, ils sont juste vides à chaque fois. Je me demande si je les ai peut-être mal créés. Aide comme toujours, énormément apprécié;Objet transmis à Fonction, mais non reçu ... pourquoi?
Dim l As New Log()
l.Log = "Attempted staff login with username [" & txtUsername.Text & "]"
l.LogId = 0
l.StaffId = 4
l.LogDate = Date.Now()
l.Insert()
.Insert() est repris dans ma couche BLL par ces deux fonctions;
Public Function Insert() As Integer
Return InsertLog(Me.LogId, Me.Log, Me.StaffId, Me.LogDate)
End Function
Public Shared Function InsertLog(ByVal logid As Integer, ByVal log As String, ByVal staffid As Integer, ByVal logdate As DateTime) As Integer
Using scope As New TransactionScope()
Dim record As New LogDetails(logid, log, staffid, logdate)
Dim ret As Integer = SiteProvider.Avalon.InsertLog(record)
scope.Complete()
Return ret
End Using
End Function
Dans le DAL InsertLog est;
Public Overrides Function InsertLog(ByVal log As LogDetails) As Integer
Using cn As New SqlConnection(Me.ConnectionString)
Dim cmd As New SqlCommand("sp_log_Insert", cn)
cmd.CommandType = CommandType.StoredProcedure
cmd.Parameters.AddWithValue("@log", log.Log)
cmd.Parameters.AddWithValue("@staff_id", log.StaffId)
cmd.Parameters.AddWithValue("@log_date", log.LogDate)
Dim param As New SqlParameter
param.Direction = ParameterDirection.ReturnValue
cmd.Parameters.Add(param)
cn.Open()
Dim ret As Integer = ExecuteNonQuery(cmd)
Return CInt(Convert.ToInt32(param.Value))
End Using
End Function
-je obtenir le retour correct (l'identifiant de ligne db) de la fonction finale - mais les données correctes n'est pas inséré, je reçois les données par défaut, je mis en place pour l'intérieur LogDetails de la propriété. Quelqu'un peut-il voir ce que je peux faire mal ici?
aide énormément apprécié :)
Comme l'a demandé: DAL: LogDetails
Imports Microsoft.VisualBasic
Namespace Harmony.Zizz.DAL
Public Class LogDetails
Protected _logid As Integer = 0
Protected _log As String = ""
Protected _staffid As Integer = 0
Protected _logdate As DateTime = Date.Now
Public Sub New()
End Sub
Public Sub New(ByVal logid As Integer, ByVal log As String, ByVal staffid As Integer, ByVal logdate As DateTime)
End Sub
Public Property LogId() As Integer
Get
Return _logid
End Get
Set(ByVal value As Integer)
_logid = value
End Set
End Property
Public Property Log() As String
Get
Return _log
End Get
Set(ByVal value As String)
_log = value
End Set
End Property
Public Property StaffId() As Integer
Get
Return _staffid
End Get
Set(ByVal value As Integer)
_staffid = value
End Set
End Property
Public Property LogDate() As DateTime
Get
Return _logdate
End Get
Set(ByVal value As DateTime)
_logdate = value
End Set
End Property
End Class
End Namespace
Afficher utiliser le code pour les LogDetails esp. son constructeur – AnthonyWJones
Salut Anthony, j'ai ajouté la classe LogDetails. C'est à partir de la DAL, que j'importe en haut de la BLL, d'où l'on appelle le .Inserts(). J'ai aussi une classe Log qui ressemble exactement à ma BLL, ceci est basé sur ma compréhension de l'architecture n-tier, mais peut très bien me tromper ... – dooburt