none
Est-ce que mon code est bien optimisé? RRS feed

  • Question

  • Bonjour,

    J'aimerais être sur que je suis dans le bon par rapport à mon code pour mettre à jour des données dans une table. Pourriez-vous me dire si c'est bien la bonne méthode que j'utilise? N'y a t'il pas plus simple? Merci d'avance pour votre aide.

    Dim Connection As New OleDb.OleDbConnection(My.Settings.ConnectionString)
    Dim sql As String = "SELECT * From tblOverallKPI where Datum = '" & Format(mDate, "MM/dd/yyyy") & "'"
    Dim Adapter As New OleDb.OleDbDataAdapter(sql, Connection)
    Dim Builder As New OleDb.OleDbCommandBuilder(Adapter)
    Dim ds As New DataSet()
    Dim row As DataRow
    Dim tblOverallKPI As DataTable
    Dim insertMode As Boolean
    
    Adapter.Fill(ds, "tblOverallKPI")
    tblOverallKPI = ds.Tables("tblOverallKPI")
    insertMode = (tblOverallKPI.Rows.Count = 0)
    
    If insertMode Then
       row = tblOverallKPI.NewRow
       row("Datum") = mDate
    Else
    ' ici on est en edit donc la variable row prend l'unique ligne de la table pour l'editer
    row = tblOverallKPI.Rows(0) End If row("CptrNotifications") = objErrors.NotificationsCptr row("CptrWarningsLevel1") = objErrors.WarningsYellowCptr row("CptrWarningsLevel2") = objErrors.WarningsRedCptr If insertMode Then
    ' ici on ajoute la nouvelle ligne
    tblOverallKPI.Rows.Add(row) Else
    ' ici on envoit les données modifiées Adapter.UpdateCommand = Builder.GetUpdateCommand End If Adapter.Update(ds, "tblOverallKPI")
    lundi 25 mai 2009 16:29

Réponses

Toutes les réponses

  • Bonjour,

    Le code me parait pas mal, propre
    D'après ce que j'ai appris on peux toujours mieux faire ... blabla blabla :)

    j'aurais ajouté un ou deux bloc With mais cela ne tien qu'a moi !

    puis mesurer le temps, pour faire de l'optimisation il faudra utiliser :

            Dim oStopwatch As New Stopwatch
            oStopwatch.Start()
            ' CODE
            ' CODE
            ' CODE
            '
            '
            '
            ' Fin 
    oStopwatch.Stop() Console.WriteLine("Start and Stop : {0}", oStopwatch.Elapsed)
    Voila :D
    Cordialement, Troxsa
    lundi 25 mai 2009 20:23
    Auteur de réponse
  • Bonjour,

    Pour moi j'aurais utilisé Linq to SQL ou Linq to Entities qui permet de typer énormement votre code et éviter les chaînes de caractères.

    Cordialement
    Gilles TOURREAU - MVP C#
    lundi 1 juin 2009 15:20
    Modérateur
  • Merci beaucoup pour votre avis.
    samedi 6 juin 2009 18:21