in

DotNetSide

Dot Net South Italy Developers User Group

Tips

May 2006 - Posts

  • Verificare la presenza di una connessione di rete attiva

    Autore: Michele Locuratolo

    In applicazioni wondows forms, può esserci l'esigenza di verificare la presenza o meno di una connessione di rete attiva. Con il framework 1.1, l'unica soluzione era quella di richiamare, via PInvoke, la Wininet.dll . Nel framework 2.0 la cosa si è molto semplificata grazie al namespace System.Net.NetworkInformation.NetworkInterface che espone un metodo GetIsNetworkAvailable(); che ritorna un bool.

    Questo ci permette, ad esempio usando un timer, di controllare periodicamente lo stato della connessione e di modificare il comportamento del software di conseguenza. Nell'esempio proposto, cambieremo solo una icona nella status bar.
    Il codice è il seguente:

    using System;
    using System.Collections.Generic;
    using System.ComponentModel;
    using System.Data;
    using System.Drawing;
    using System.Text;
    using System.Windows.Forms;

    namespace WindowsApplication2 {
         public partial class Form1 : Form {
             
    bool _NetworkAvailable = false;
                  
    public Form1() {
                        InitializeComponent();
                   }

              private void NetworkTestTimer_Tick(object sender, EventArgs e) {
                   _NetworkAvailable = System.Net.NetworkInformation.NetworkInterface.GetIsNetworkAvailable();
                  
    if (_NetworkAvailable) {
                       
    this.toolStripStatusLabel1.Image = global::WindowsApplication2.Properties.Resources.networkConnections;
                   }
    else {
                       
    this.toolStripStatusLabel1.Image = global::WindowsApplication2.Properties.Resources.none;
                   }
              }
         }
    }

    Il risultato sarà quello mostrato in figura.

    Posted May 30 2006, 05:30 PM by VitoA with 3 comment(s)
    Filed under:
  • SqlParameter - Pulizia dei parametri di una query

    Autore: Vito Arconzo

    Spesso non possiamo o vogliamo utilizzare query parametriche. In queste situazioni utilizzo per avere una semplicissima ma molto efficace funzione che ripulisce e normalizza in valore da inserire in una query.

        Public Shared Function SqlParameter(ByVal Value As ObjectAs String

            Dim 
    sql As String String.Empty

            If 
    ((Value Is NothingOrElse (Value.GetType Is GetType(DBNull))) Then
                
    Value = String.Empty
            End If

            If 
    (Value.GetType Is GetType(String)) Then
                Return 
    ("'" & Value.ToString.Replace("'", "''") & "'")
            
    End If

            If 
    (((((Value.GetType Is GetType(Decimal)) _
            
    Or (Value.GetType Is GetType(Integer))) _
            
    Or (Value.GetType Is GetType(Long))) _
            
    Or (Value.GetType Is GetType(Short))) _
            
    Or (Value.GetType Is GetType(Byte))) Then
                Return 
    Value.ToString.Replace(","c, "."c)
            
    End If

            Return 
    sql

        
    End Function

    L'utilizzo è semplicissimo:

    Dim query As String = "SELECT * FROM clienti WHERE codice=" + SqlParameter(1)

    Anche se questa funzione ripulisce il valore passato alla query, il NON utilizzare query parametriche è una tecnica che può causare problemi di SQL INJECTION e va quindi evitata se non in casi particolari.

    Posted May 30 2006, 08:56 AM by VitoA with no comments
    Filed under:
Powered by Community Server (Commercial Edition), by Telligent Systems