In un listato di un libro ho recuperato del codice che recupera dei dati.C'è però una istruzione e che credo non faccia funzionare il resto,perchè il codice non funziona.L'istruzione è questa:dim objAccount as new ASPNETBank.Account(User.Identity.Name)
ASPNETBank è una libreria e Account dovrebbe essere la classe principale di questa libreria.Quello che non mi è chiaro è quello tra parentesi.Ho provato con un response.write a visualizzare il valore ma non mi da nulla.La libreria la ricavo compilando un file chiamato Account.vb che per comodita vi posto,anche se è lungo è semplice:
Imports System
Imports System.Data
Imports System.Data.OleDb
Namespace ASPNETBank
Public Class Account
'dichiara un oggetto connession
private objConn as new OleDbConnection("Provider=Microsoft.Jet.OLEDB.4.0;" & "Data Source=c:\ASPNET\data\banking.mdb")
private strUsername as string
public sub New(Username as string)
strUsername=Username
end sub
'**********************************************************************
'Questa funzione restituisce il bilancio dell'account con lo specifico userID
'**********************************************************************
public function GetBalance() as Decimal
dim decBalance as decimal
dim objCmd as new OleDbCommand("spRetrieveBalance",objConn)
objCmd.CommandType=CommandType.StoredProcedure
dim objReader as OleDbDataReader
'setta i parametri per le store procedure
dim objParam as OleDbParameter
objParam=objCmd.Parameters.Add("@UserID",OleDbType.BSTR)
objParam.Direction=ParameterDirection.Input
objParam.Value=strUsername
try
objConn.Open()
decBalance=CType(objCmd.ExecuteScalar,Decimal)
objConn.Close()
catch ex as OleDbException
throw ex
end try
return decBalance
end function
'*********************************************************************
'Restituisce tutte le transazioni per dato user ID
'**********************************************************************
public function GetTransaction() as OleDbDataReader
dim objCmd as new OleDbCommand("spGetTransactions",objConn)
objCmd.CommandType=CommandType.StoredProcedure
dim objReader as OleDbDataReader
'setta i parametri per le store procedure
dim objParam as OleDbParameter
objParam=objCmd.Parameters.Add("@UserID",OleDbType.BSTR)
objParam.Direction=ParameterDirection.Input
objParam.Value=strUsername
try
objConn.Open()
return objCmd.ExecuteReader
catch ex as OleDbException
throw ex
end try
end function
'**********************************************************************
'Aggiunge una transazione nel database,richiama spInserTransaction specificando ammontare,pagamenti,e user ID
'**********************************************************************
public sub AddTransaction(strPayee as string,decAmount as decimal)
dim objCmd as OleDbCommand=new OleDbCommand("spInsertTransaction",objConn)
objCmd.CommandType=CommandType.StoredProcedure
'setta i parametri per le store procedure
dim objParam as OleDbParameter
objParam=objCmd.Parameters.Add("@Date",OleDbType.Date)
objParam.Direction=ParameterDirection.Input
objParam.Value=DateTime.Now
objParam=objCmd.Parameters.Add("@Amount",OleDbType.Decimal)
objParam.Direction=ParameterDirection.Input
objParam.Value=decAmount
objParam=objCmd.Parameters.Add("@Payee",OleDbType.BSTR)
objParam.Direction=ParameterDirection.Input
objParam.Value=strPayee
objParam=objCmd.Parameters.Add("@UserID",OleDbType.BSTR)
objParam.Direction=ParameterDirection.Input
objParam.Value=strUsername
try
objConn.Close()
objCmd.ExecuteNonQuery
objConn.Close()
catch ex as OleDbException
throw ex
end try
end sub
'**********************************************************************
'Aggiorna il bilancio
'Richiama spUpdateBalance
'**********************************************************************
public sub UpdateBalance(decNewAmount as decimal)
dim objCmd as OleDbCommand=new OleDbCommand("spUpdateBalance",objConn)
objCmd.CommandType=CommandType.StoredProcedure
'setta i parametri per le store procedure
dim objParam as OleDbParameter
objParam=objCmd.Parameters.Add("@NewBalance",OleDbType.Decimal)
objParam.Direction=ParameterDirection.Input
objParam.Value=decNewAmount
objParam=objCmd.Parameters.Add("@UserID",OleDbType.BSTR)
objParam.Direction=ParameterDirection.Input
objParam.Value=strUsername
try
objConn.Open()
objCmd.ExecuteNonQuery
objConn.Close()
catch ex as OleDbException
throw ex
end try
end sub
end class
end namespace
Ho risolto il problema inserendo questa istruzione:
objParam.Value=Request.Cookies("Account").Value
cosi mi restituisce quello che chiedo nella funzione getbalance()
ASPNETBank è una libreria e Account dovrebbe essere la classe principale di questa libreria.Quello che non mi è chiaro è quello tra parentesi.Ho provato con un response.write a visualizzare il valore ma non mi da nulla.La libreria la ricavo compilando un file chiamato Account.vb che per comodita vi posto,anche se è lungo è semplice:
Imports System
Imports System.Data
Imports System.Data.OleDb
Namespace ASPNETBank
Public Class Account
'dichiara un oggetto connession
private objConn as new OleDbConnection("Provider=Microsoft.Jet.OLEDB.4.0;" & "Data Source=c:\ASPNET\data\banking.mdb")
private strUsername as string
public sub New(Username as string)
strUsername=Username
end sub
'**********************************************************************
'Questa funzione restituisce il bilancio dell'account con lo specifico userID
'**********************************************************************
public function GetBalance() as Decimal
dim decBalance as decimal
dim objCmd as new OleDbCommand("spRetrieveBalance",objConn)
objCmd.CommandType=CommandType.StoredProcedure
dim objReader as OleDbDataReader
'setta i parametri per le store procedure
dim objParam as OleDbParameter
objParam=objCmd.Parameters.Add("@UserID",OleDbType.BSTR)
objParam.Direction=ParameterDirection.Input
objParam.Value=strUsername
try
objConn.Open()
decBalance=CType(objCmd.ExecuteScalar,Decimal)
objConn.Close()
catch ex as OleDbException
throw ex
end try
return decBalance
end function
'*********************************************************************
'Restituisce tutte le transazioni per dato user ID
'**********************************************************************
public function GetTransaction() as OleDbDataReader
dim objCmd as new OleDbCommand("spGetTransactions",objConn)
objCmd.CommandType=CommandType.StoredProcedure
dim objReader as OleDbDataReader
'setta i parametri per le store procedure
dim objParam as OleDbParameter
objParam=objCmd.Parameters.Add("@UserID",OleDbType.BSTR)
objParam.Direction=ParameterDirection.Input
objParam.Value=strUsername
try
objConn.Open()
return objCmd.ExecuteReader
catch ex as OleDbException
throw ex
end try
end function
'**********************************************************************
'Aggiunge una transazione nel database,richiama spInserTransaction specificando ammontare,pagamenti,e user ID
'**********************************************************************
public sub AddTransaction(strPayee as string,decAmount as decimal)
dim objCmd as OleDbCommand=new OleDbCommand("spInsertTransaction",objConn)
objCmd.CommandType=CommandType.StoredProcedure
'setta i parametri per le store procedure
dim objParam as OleDbParameter
objParam=objCmd.Parameters.Add("@Date",OleDbType.Date)
objParam.Direction=ParameterDirection.Input
objParam.Value=DateTime.Now
objParam=objCmd.Parameters.Add("@Amount",OleDbType.Decimal)
objParam.Direction=ParameterDirection.Input
objParam.Value=decAmount
objParam=objCmd.Parameters.Add("@Payee",OleDbType.BSTR)
objParam.Direction=ParameterDirection.Input
objParam.Value=strPayee
objParam=objCmd.Parameters.Add("@UserID",OleDbType.BSTR)
objParam.Direction=ParameterDirection.Input
objParam.Value=strUsername
try
objConn.Close()
objCmd.ExecuteNonQuery
objConn.Close()
catch ex as OleDbException
throw ex
end try
end sub
'**********************************************************************
'Aggiorna il bilancio
'Richiama spUpdateBalance
'**********************************************************************
public sub UpdateBalance(decNewAmount as decimal)
dim objCmd as OleDbCommand=new OleDbCommand("spUpdateBalance",objConn)
objCmd.CommandType=CommandType.StoredProcedure
'setta i parametri per le store procedure
dim objParam as OleDbParameter
objParam=objCmd.Parameters.Add("@NewBalance",OleDbType.Decimal)
objParam.Direction=ParameterDirection.Input
objParam.Value=decNewAmount
objParam=objCmd.Parameters.Add("@UserID",OleDbType.BSTR)
objParam.Direction=ParameterDirection.Input
objParam.Value=strUsername
try
objConn.Open()
objCmd.ExecuteNonQuery
objConn.Close()
catch ex as OleDbException
throw ex
end try
end sub
end class
end namespace
Ho risolto il problema inserendo questa istruzione:
objParam.Value=Request.Cookies("Account").Value
cosi mi restituisce quello che chiedo nella funzione getbalance()
Ultima modifica: