Eccolo:
// Questo metodo, viene chiamato da una classe BLL. i parametri sono 7 e variano da tipo data, a varchar, a int32.
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