Records che si creano/aggiornano da soli e...

domenica 26 marzo 2006 - 21.43

RovedaC Profilo | Newbie

...non sono pazzo. Forse lo sto' diventando.

Vi spiego.

Ho fatto un 'applicativo con NET 2.0 utilizzando ASP.NET e C# ed è sviluppato su 3 livelli.

Ormai sto' solo completando le ultime cose.

Tutto funziona correttamente se non fosse per questo "piccolo" problema che vorrei capire se è solo dovuto all'ambiente di sviluppo, oppure perchè ho dimenticato di configurare correttamente l'applicativo stesso e quindi potrò averlo anche in produzione.

Premetto che il "problema" è sistematico. Posso riprodurlo quando voglio.

Utilizzo MySQL 5.0, e il Provider Connector NET 1.0.7 per memorizzare e accedere ai dati.

Il layer per l'accesso ai dati funziona nel seguente modo.

Il BLL chiama una procedura sul DAL, all'interno della procedura viene istanziato un oggetto MySqlCommand (del Provider Connector),

Successivamente chiamo n volte quanti sono i parametri, una procedura privata che crea un MySqlParameter e dopo averlo configurato lo aggiunge all'oggetto Command.

Completata tale attività, chiamo una funzione che crea, la connessione, esegue la query e quindi chiude la connessione.

Io metto un breakpoint prima di chiamare la funzione che esegue la query. L'applicativo si ferma sul BreakPoint, Io premo il tasto "Stop debugging".
Rientro nell'applicativo e....il record è creato/modificato.

Io ho pensato a un problema di cash, ma non ho la più pallida idea di dove andare ad operare.

Mi potete aiutare ?

grazie

Cesare






alx_81 Profilo | Guru

dovresti postare il codice.. così non sono in grado di aiutarti..
Alx81 =)

RovedaC Profilo | Newbie

Eccolo:

// Questo metodo, viene chiamato da una classe BLL. i parametri sono 7 e variano da tipo data, a varchar, a int32.

Il codice sorgente non è stato renderizzato qui
perchè non c'è sufficiente spazio.
Clicca qui per visualizzarlo in una nuova finestra

Questo è la funzione che instanzia l'oggetto paramtro e lo aggoinge all'oggetto MySqlCommand

private void AddParamToSQLCmd(MySqlCommand sqlCmd, string paramId, MySqlDbType sqlType, int paramSize, ParameterDirection paramDirection, object paramvalue) { if (sqlCmd == null) throw (new ArgumentNullException("sqlCmd")); if (paramId == string.Empty) throw (new ArgumentOutOfRangeException("paramId")); MySqlParameter newSqlParam = new MySqlParameter(); newSqlParam.ParameterName = paramId; newSqlParam.MySqlDbType = sqlType; newSqlParam.Direction = paramDirection; if (paramSize > 0) newSqlParam.Size = paramSize; if (paramvalue != null) { newSqlParam.Value = paramvalue; } else newSqlParam.Value = null; sqlCmd.Parameters.Add(newSqlParam);

Infine questa il metodo che esegue la query e che non dovrebbe essere chiamato in quanto io blocco la procedura prima

private int ExecuteScalar(MySqlCommand sqlCmd) { if (ConnectionString == string.Empty) throw (new ArgumentOutOfRangeException("ConnectionString")); if (sqlCmd == null) throw (new ArgumentNullException("sqlCmd")); using (MySqlConnection cn = new MySqlConnection(this.ConnectionString)) { sqlCmd.Connection = cn; cn.Open(); return int.Parse(sqlCmd.ExecuteScalar().ToString()); } }

spero di non aver dimentico graffe etc.

Per chiarezza, ho utilizzato la struttura dello StartKit di MS TimeTracker

grazie per l'aiuto

Cesare
Partecipa anche tu! Registrati!
Hai bisogno di aiuto ?
Perchè non ti registri subito?

Dopo esserti registrato potrai chiedere
aiuto sul nostro Forum oppure aiutare gli altri

Consulta le Stanze disponibili.

Registrati ora !
Copyright © dotNetHell.it 2002-2024
Running on Windows Server 2008 R2 Standard, SQL Server 2012 & ASP.NET 3.5