Visualizzazione post con etichetta c#. Mostra tutti i post
Visualizzazione post con etichetta c#. Mostra tutti i post

venerdì 29 luglio 2011

Conversione di una data in formato stringa in datetime.

// Conversione di una data in formato stringa in datetime.
public class ConvStringToDateTime
{
    public DateTime data { get; set; }
    public Boolean esitoConversioneOk { get; set; }


    public ConvStringToDateTime(string dataDaVerificare)
    {
        CultureInfo culturaItaliana = new CultureInfo("it-IT");
        DateTime dataVerificata;
        if (!(DateTime.TryParse(dataDaVerificare, culturaItaliana, DateTimeStyles.AssumeLocal, out dataVerificata)))
        {
            // Data non valida
            dataVerificata = new DateTime(1900, 1, 1);
            esitoConversioneOk = false;
        }
        else
        {
            // Data valida
            esitoConversioneOk = true;
        }
        data = dataVerificata;
    }
}

// Utilizzo
ConvStringToDateTime dataRichiestaIntervento = new ConvStringToDateTime(Row.SorgenteDataRichiestaIntervento);
if (!dataRichiestaIntervento.esitoConversioneOk)
{
    messaggio = messaggio + ", Data Richiesta Intervento";
    Row.dataRichiestaIntervento = dataRichiestaIntervento.data;
}
else
    Row.dataRichiestaIntervento = dataRichiestaIntervento.data;

Creazione di una transazione in un Component Task

// Creazione di una transazione nel metodo principale
// Inizio transazione
SqlTransaction trans;
trans = sqlConn.BeginTransaction();

// Sql command con transazione
sqlCmd = new SqlCommand(queryString, sqlConn, trans);

// Commit
trans.Commit();

// Rollback
trans.Rollback();

SSIS Script Component, implementazione di un Lookup.

// LOOKUP, lettura di dati potenzialmnente nulli, quindi da controllare esplicitamente.
// Utilizzo di una query con paramentri.
if (!Row.idCliente_IsNull)
{
    // L'accensione ha l'id cliente, viene processata.
    queryString = "SELECT indirizzo, numero, comune, cap FROM MOD2_Anagrafica_Clienti WHERE id = @id;";
    sqlCmd = new SqlCommand(queryString, sqlConn);
    sqlCmd.Parameters.Add("@id", SqlDbType.Int).Value = Row.idCliente;

    using (SqlDataReader reader = sqlCmd.ExecuteReader())
    {
        while (reader.Read())
        {
            // Indirizzo Ubicazione
            obj = reader[reader.GetOrdinal("indirizzo")];
            if (!(MyObjIsNull(obj)))
                Row.indirizzoUbicazione = obj.ToString();

            // Civico Ubicazione
            obj = reader[reader.GetOrdinal("numero")];
            if (!(MyObjIsNull(obj)))
            {
                if (obj.ToString().Length > 5)
                    Row.civicoUbicazione = obj.ToString().Substring(0, 5);
                else
                    Row.civicoUbicazione = obj.ToString();
            }

            // Comune (istat) Ubicazione
            obj = reader[reader.GetOrdinal("comune")];
            if (!(MyObjIsNull(obj)))
                Row.comuneUbicazione = obj.ToString();

            // CAP Ubicazione
            obj = reader[reader.GetOrdinal("cap")];
            if (!(MyObjIsNull(obj)))
                Row.capUbicazione = obj.ToString();
            this.ComponentMetaData.FireInformation(0, " ---------- " + this.ComponentMetaData.Name + " ---------- ", "DATI LETTI idAccensione: " + Row.idAccensione + ", indirizzoUbicazione: " + Row.indirizzoUbicazione + ", civicoUbicazione: " + Row.civicoUbicazione + ", comuneUbicazione: " + Row.comuneUbicazione + ", capUbicazione: " + Row.capUbicazione + ".", string.Empty, 0, ref fireAgain);


        }
    }
}

Metodo statico per verificare se un oggetto è nullo.

// Verifica se un oggetto sia nullo per C# e SQL
public static bool MyObjIsNull(object o)
{
    return ((o == null) || (o == DBNull.Value)) ? true : false;
}