Meilleur auteur de réponses
Est-ce que mon code est bien optimisé?

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")
Réponses
-
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#- Marqué comme réponse Gilles TOURREAUModerator samedi 6 juin 2009 19:14
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
Voila :D
oStopwatch.Stop() Console.WriteLine("Start and Stop : {0}", oStopwatch.Elapsed)
Cordialement, Troxsa -
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#- Marqué comme réponse Gilles TOURREAUModerator samedi 6 juin 2009 19:14
-