IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

VB.NET Discussion :

Modification d'un enregistrement dans une base sqlite


Sujet :

VB.NET

  1. #1
    Futur Membre du Club
    Homme Profil pro
    Développeur informatique
    Inscrit en
    janvier 2021
    Messages
    6
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 57
    Localisation : France, Isère (Rhône Alpes)

    Informations professionnelles :
    Activité : Développeur informatique
    Secteur : Finance

    Informations forums :
    Inscription : janvier 2021
    Messages : 6
    Points : 6
    Points
    6
    Par défaut Modification d'un enregistrement dans une base sqlite
    Bonjour,
    J'utilise énormément perplexity.ai pour éviter de poser 1000 questions dans ce forum.
    J'ai demandé : "En vb.net comment modifier la valeur des champs de la ligne 10 en sqlite sur une datagridview"

    Voici le code qu'il me donne :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    vb.net
    ' Récupérer la ligne à modifier
    Dim row As DataGridViewRow = dataGridView1.Rows(9)
     
    ' Modifier la valeur des champs souhaités
    row.Cells("NomDuChamp1").Value = "NouvelleValeur1"
    row.Cells("NomDuChamp2").Value = "NouvelleValeur2"
    row.Cells("NomDuChamp3").Value = "NouvelleValeur3"
     
    ' Mettre à jour la base de données SQLite avec les nouvelles valeurs
    Dim connectionString As String = "Data Source=NomDeLaBaseDeDonnées.sqlite"
    Using connection As New SQLiteConnection(connectionString)
        connection.Open()
        Dim command As New SQLiteCommand("UPDATE NomDeLaTable SET Champ1=@Champ1, Champ2=@Champ2, Champ3=@Champ3 WHERE Id=@Id", connection)
        command.Parameters.AddWithValue("@Champ1", row.Cells("NomDuChamp1").Value)
        command.Parameters.AddWithValue("@Champ2", row.Cells("NomDuChamp2").Value)
        command.Parameters.AddWithValue("@Champ3", row.Cells("NomDuChamp3").Value)
        command.Parameters.AddWithValue("@Id", row.Cells("Id").Value)
        command.ExecuteNonQuery()
    End Using
    Puis il me fournit des informations pour comprendre le code :

    " Dans cet exemple, dataGridView1 est le nom de la DataGridView, NomDuChamp1, NomDuChamp2 et NomDuChamp3 sont les noms des champs à modifier, et NomDeLaTable est le nom de la table dans la base de données SQLite.
    Le code utilise la classe SQLiteConnection pour se connecter à la base de données SQLite, et la classe SQLiteCommand pour exécuter la requête SQL qui met à jour la base de données avec les nouvelles valeurs. Les nouvelles valeurs sont récupérées à partir des cellules de la ligne modifiée.
    Il est important de noter que l'index des lignes dans une DataGridView commence à partir de zéro, donc pour modifier la ligne 10, on utilise l'index 9."

    Mon incompréhension se situe à SET Champ1=@Champ1... puis à WHERE id = @id

    Je ne comprends pas à quoi servent ces @ et ce que signifie id =.

    merci de votre aide.

  2. #2
    Membre chevronné Avatar de Thumb down
    Homme Profil pro
    Retraité
    Inscrit en
    juin 2019
    Messages
    1 307
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Rhône (Rhône Alpes)

    Informations professionnelles :
    Activité : Retraité

    Informations forums :
    Inscription : juin 2019
    Messages : 1 307
    Points : 2 022
    Points
    2 022
    Par défaut
    Bonjour,
    ta requête "UPDATE NomDeLaTable SET Champ1=@Champ1 tes paramètres command.Parameters.AddWithValue("@Champ1", row.Cells("NomDuChamp1").Value) à ton avis que veux dire le @?
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    "UPDATE NomDeLaTable SET Champ1=@TOTO
    command.Parameters.AddWithValue("@TOTO", row.Cells("NomDuChamp1").Value)

  3. #3
    Expert confirmé
    Avatar de popo
    Homme Profil pro
    Analyste programmeur Delphi / C#
    Inscrit en
    mars 2005
    Messages
    2 441
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Rhône (Rhône Alpes)

    Informations professionnelles :
    Activité : Analyste programmeur Delphi / C#
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : mars 2005
    Messages : 2 441
    Points : 4 700
    Points
    4 700
    Par défaut
    C'est le problème avec perplexity.ai ou autre ChatGPT.
    Cela pond du code ( dégueulasse , mais c'est mon avis personnel) que tu ne comprends pas parce que tu n'as pas les bases.

    Et ces bases, tu ne les acquerras jamais si tu continue à laisser de tels outils bosser à ta place.

    Recherche requête paramétrée sur Google et tu auras ta réponse.

  4. #4
    Membre éprouvé
    Profil pro
    Inscrit en
    septembre 2010
    Messages
    747
    Détails du profil
    Informations personnelles :
    Âge : 44
    Localisation : France

    Informations forums :
    Inscription : septembre 2010
    Messages : 747
    Points : 1 088
    Points
    1 088
    Par défaut
    Je pense que tu as mal posé la question à ton IA; tu aurai du précisier (si c'est le cas) que ta datagridview affiche le contenu d'une base SQLite et que tu souhaites pouvoir mettre à jour la base si on effectue un changement de valeur dans la datagridview. Tu aurai pu avoir quelque chose de plus complet je pense.

    id sinon c'est la colonne qui permet d'identifier de manière unique une ligne de données dans la base (c'est très souvent une colonne nommé id (ou contenant id) et qui est une valeur auto incrémentée)

  5. #5
    Membre chevronné Avatar de Thumb down
    Homme Profil pro
    Retraité
    Inscrit en
    juin 2019
    Messages
    1 307
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Rhône (Rhône Alpes)

    Informations professionnelles :
    Activité : Retraité

    Informations forums :
    Inscription : juin 2019
    Messages : 1 307
    Points : 2 022
    Points
    2 022
    Par défaut
    Bonjour,
    pour éviter de revenir plusieurs fois sur la gestion de la base de données je commencerai par modéliser dans une classe tout ce qui peu être utile

    perso voila ce que j'utilise!
    Code Classe OdbcSqlLite : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
    29
    30
    31
    32
    33
    34
    35
    36
    37
    38
    39
    40
    41
    42
    43
    44
    45
    46
    47
    48
    49
    50
    51
    52
    53
    54
    55
    56
    57
    58
    59
    60
    61
    62
    63
    64
    65
    66
    67
    68
    69
    70
    71
    72
    73
    74
    75
    76
    77
    78
    79
    80
    81
    82
    83
    84
    85
    86
    87
    88
    89
    90
    91
    92
    93
    94
    95
    96
    97
    98
    99
    100
    101
    102
    103
    104
    105
    106
    107
    108
    109
    110
    111
    112
    113
    114
    115
    116
    117
    118
    119
    120
    121
    122
    123
    124
    125
    126
    127
    128
    129
    130
    131
    132
    133
    134
    135
    136
    137
    138
    139
    140
    141
    142
    143
    144
    145
    146
    147
    148
    149
    150
    151
    152
    153
    154
    155
    156
    157
    158
    159
    160
    161
    162
    163
    164
    165
    166
    167
    168
    169
    170
    171
    172
    173
    174
    175
    176
    177
    178
    179
    180
    181
    182
    183
    184
    185
    186
    187
    188
    189
    190
    191
    192
    193
    194
    195
    196
    197
    198
    199
    200
    201
    202
    203
    204
    205
    206
    207
    208
    209
    210
    211
    212
    213
    214
    215
    216
    217
    218
    219
    220
    221
    222
    223
    224
    225
    226
    227
    228
    229
    230
    231
    232
    233
    234
    235
    236
    237
    238
    239
    240
    241
    242
    243
    244
    245
    246
    247
    248
    249
    250
    251
    252
    253
    254
    255
    256
    257
    258
    259
    260
    261
    262
    263
    264
    265
    266
    267
    268
    269
    270
    271
    272
    273
    274
    275
    276
    277
    278
    279
    280
    281
    282
    283
    284
    285
    286
    287
    288
    289
    290
    291
    292
    293
    294
    295
    296
    297
    298
    299
    300
    301
    302
    303
    304
    305
    306
    307
    308
    309
    310
    311
    312
    313
    314
    315
    Imports Microsoft.Data.Sqlite
    Public Class OdbcSqlLite
        Private Cn As SqliteConnection, _Database As String = ""
        Public ReadOnly Property GetSchema As DataTable
            Get
                Try
                    Return DataReaderToDataTable(Execute("SELECT [name] FROM sqlite_master where[Type]='table'  and [name] not in('sqlite_sequence','SQLITEADMIN_QUERIES') order by [name]"))
                Catch ex As Exception
                    Return Nothing
                End Try
            End Get
        End Property
        Public ReadOnly Property Getview As DataTable
            Get
                Try
                    Return DataReaderToDataTable(Execute("SELECT [name] FROM sqlite_master where [Type]='view' order by [name]"))
                Catch ex As Exception
                    Return Nothing
                End Try
            End Get
        End Property
        Public ReadOnly Property GetTrigger As DataTable
            Get '
                Try
                    Return DataReaderToDataTable(Execute("SELECT [name] FROM sqlite_master where [Type]='trigger' order by [name]"))
                Catch ex As Exception
                    Return Nothing
                End Try
            End Get
        End Property
        Public ReadOnly Property Getindex As DataTable
            Get
                Try
                    Return DataReaderToDataTable(Execute("SELECT [name] FROM sqlite_master where [Type]='index' and [sql]  is not  null order by [name]"))
                Catch ex As Exception
                    Return Nothing
                End Try
            End Get
        End Property
        Public WriteOnly Property Database As String
            Set(value As String)
                If Not IsNothing(Cn) Then
                    If Cn.State <> 0 Then
                        Cn.Close()
                        Cn.Dispose()
                        Cn = Nothing
                    End If
                End If
                _Database = value
                Cn = Connection()
            End Set
        End Property
        Public Sub CloseDatabase()
            _Database = ""
            If Not IsNothing(Cn) Then
                Cn.Close()
                Cn.Dispose()
            End If
        End Sub
        Public Sub New()
        End Sub
        Public Sub New(ByVal Database As String)
            Try
                _Database = Database
                Cn = Connection()
            Catch ex As Exception
            End Try
        End Sub
        Private Function Connection() As SqliteConnection
            Try
                Dim c As New SqliteConnection With {
                    .ConnectionString = $"Data Source={_Database}"
                }
                c.Open()
                Return c
            Catch ex As Exception
                Return Nothing
            End Try
        End Function
        Public Function Execute(ByVal Sql As String) As SqliteDataReader
            If IsNothing(Cn) Then Cn = Connection()
            Dim cmd As New SqliteCommand(Sql, Cn)
            Try
                Return cmd.ExecuteReader()
            Catch ex As Exception
                Return Nothing
            End Try
        End Function
        Public Function Execute(ByVal Sql As String, ByVal Param() As SqliteParameter) As SqliteDataReader
            If Cn Is Nothing Then Connection()
            Dim cmd As New SqliteCommand(Sql, Cn)
            For Each c As SqliteParameter In Param
                cmd.Parameters.Add(c)
            Next
            Try
                Return cmd.ExecuteReader()
            Catch ex As Exception
                Return Nothing
            End Try
        End Function
        Public Function DataReaderToDataTable(ByRef DR As SqliteDataReader) As DataTable
            Using TD As New DataTable
                TD.Load(DR)
                Return TD
            End Using
        End Function
        Public Function DataReaderToDataTable(ByRef DR As SqliteDataReader, TableName As String) As DataTable
            Using TD As New DataTable
                TD.Load(DR)
                TD.TableName = TableName
                Return TD
            End Using
        End Function
        Public Function Parameter(ByVal champ As String, Type As SqliteType, Value As Object) As SqliteParameter
            Dim p As New SqliteParameter(champ, Type) With {
                .Value = Value
            }
            Return p
        End Function
        Protected Function FormatChamp(Champ As Object, NomType As String) As String
            Try
                Dim provider As CultureInfo = CultureInfo.InvariantCulture, e As Exception
                Dim V As String = ""
                Dim ChampString As String = Champ?.ToString().Replace(Convert.ToChar(13), "").Replace(Convert.ToChar(10), "").Replace(Environment.NewLine, "").Replace(Environment.NewLine, "").Trim()
                Select Case NomType
                    Case "DBNull" : Return "Null"
                    Case "Boolean" : Try : Return Boolean.Parse(ChampString).ToString.Replace("True", "1").Replace("False", "0") : Catch e : Return False.ToString() : End Try
                    Case "Decimal", "Int32", "Int64", "Double" : Return ChampString.Replace(",", ".")
                    Case "DateTime" : Try : Return "'" + Date.Parse(ChampString).ToString("yyyy-mm-dd HH:mm:ss") + "'" : Catch e : End Try
                    Case "Byte[]"
                        Return "0x" + BitConverter.ToString(Champ).Replace("-", "")
                    Case Else : Return "'" + ChampString.Replace("'", "''") + "'"
                End Select
                Return Nothing
            Catch ex As Exception
                Return Nothing
            End Try
        End Function
        Public Sub CreateDataBase(CheminFichier As String)
            _Database = CheminFichier
            Dim strB64Encoded As String = MyBdd()
            Dim data As Byte() = Convert.FromBase64String(strB64Encoded)
            TableauDeByteVersFicher(CheminFichier, data)
            Connection()
        End Sub
        Private Sub TableauDeByteVersFicher(ByVal CheminFichier As String, ByVal TableauDeByte() As Byte)
            Dim MonFileStream As New System.IO.FileStream(CheminFichier, System.IO.FileMode.Create)
            MonFileStream.Write(TableauDeByte, 0, TableauDeByte.Length)
            MonFileStream.Close()
        End Sub
        Private Function MyBdd() As String
            Return "U1FMaXRlIGZvcm1hdCAzABAAAQEAQCAgAAAAAgAAAAIAAAACAAAAAQAAAAIAAAAEAAAAAAAA
    AAAAAAABAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAACAC5Dwg0AAAAAEAAA
    D7QAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
    AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
    AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
    AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
    AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
    AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
    AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
    AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
    AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
    AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
    AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
    AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
    AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
    AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
    AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
    AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
    AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
    AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
    AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
    AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
    AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
    AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
    AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
    AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
    AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
    AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
    AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
    AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
    AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
    AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
    AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
    AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
    AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
    AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
    AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
    AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
    AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
    AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
    AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
    AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
    AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
    AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
    AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
    AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
    AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
    AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
    AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
    AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
    AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
    AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
    AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
    AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
    AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
    AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
    AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
    AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
    AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
    AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
    AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
    AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
    AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
    AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
    AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
    AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
    AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
    AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
    AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
    AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
    AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
    AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
    AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
    AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
    AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAATB0dAWl0YWJsZW5vdGVtcHR5bm90ZW1wdHkC
    Q1JFQVRFIFRBQkxFIG5vdGVtcHR5IChpZCBpbnRlZ2VyIHByaW1hcnkga2V5KQAAAAAAAAAA
    AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
    AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
    AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
    AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
    AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
    AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
    AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
    AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
    AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
    AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
    AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
    AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
    AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
    AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
    AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
    AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
    AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
    AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
    AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
    AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
    AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
    AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
    AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
    AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
    AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
    AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
    AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
    AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
    AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
    AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
    AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
    AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
    AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
    AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
    AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
    AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
    AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
    AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
    AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
    AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
    AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
    AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
    AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
    AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
    AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
    AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
    AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
    AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
    AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
    AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
    AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
    AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
    AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
    AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
    AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
    AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
    AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
    AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
    AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
    AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
    AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
    AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
    AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
    AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
    AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
    AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
    AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
    AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
    AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
    AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
    AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
    AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
    AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
    AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
    AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
    AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA"
        End Function
        Protected Overrides Sub Finalize()
            If Not IsNothing(Cn) Then
                If Cn.State <> 0 Then
                    Cn.Close()
                    Cn.Dispose()
                    Cn = Nothing
                End If
            End If
            MyBase.Finalize()
        End Sub
    End Class

    dans une Form j'ai mis un Bouton que j'ai appelé MAJ un DataGridView1

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
    29
    30
    31
    32
    33
    34
    35
    36
    37
    38
    39
    40
    41
    42
    43
    Public Class Form2
        Private CN As OdbcSqlLite = Nothing
        Private Sub Form2_Load(sender As Object, e As EventArgs) Handles MyBase.Load
            CN = New OdbcSqlLite($"{Application.StartupPath}\DataBase\WIN32API.db3")
            'SELECT id,Entier,Num,BOOL,Date,Txt FROM TableTest
            Dim bindingSource1 = New BindingSource With {
                            .DataSource = CN.DataReaderToDataTable(CN.Execute("SELECT * FROM TableTest"))
                        }
            DataGridView1.DataSource = bindingSource1
        End Sub
        Private Sub MAJ_Click(sender As Object, e As EventArgs) Handles MAJ.Click
            Dim Prm() As Object= Nothing, Sql As String = "", MyTable As DataTable = DataGridView1.DataSource.DataSource
            For Each d As DataRow In MyTable.Rows.Cast(Of DataRow)().Where(Function(g) g.RowState <> DataRowState.Unchanged)
                Select Case d.RowState
                    Case DataRowState.Added
                        Sql = "insert into TableTest (Entier,Num,BOOL,Date,Txt) Values(@Entier,@Num,@BOOL,@Date,@Txt)"
                        Prm = {CN.Parameter("@Entier", SqliteType.Integer, d("Entier")),
                            CN.Parameter("@Num", SqliteType.Real, d("Num")),
                            CN.Parameter("@BOOL", SqliteType.Integer, d("BOOL")),
                            CN.Parameter("@Date", SqliteType.Text, d("Date")),
                            CN.Parameter("@Txt", SqliteType.Text, d("Txt"))}
     
     
                    Case DataRowState.Modified
                        Sql = "UPDATE TableTest SET Entier=@Entier,Num=@Num,@BOOL,Date=@Date,Txt=@Txt Where ID=@ID"
                        Prm = {CN.Parameter("@ID", SqliteType.Integer, d("ID")),
                            CN.Parameter("@Entier", SqliteType.Integer, d("Entier")),
                            CN.Parameter("@Num", SqliteType.Real, d("Num")),
                            CN.Parameter("@BOOL", SqliteType.Integer, d("BOOL")),
                            CN.Parameter("@Date", SqliteType.Text, d("Date")),
                            CN.Parameter("@Txt", SqliteType.Text, d("Txt"))}
     
     
                    Case DataRowState.Deleted
                        Sql = "Delete From TableTest  Where ID=@ID"
                        Prm = {CN.Parameter("@ID", SqliteType.Integer, d("ID", DataRowVersion.Original))}
                End Select
                If d.RowState <> DataRowState.Deleted Then d.AcceptChanges()
                CN.Execute(Sql, Prm)
            Next
            DataGridView1.EditMode = DataGridViewEditMode.EditOnF2
        End Sub
    End Class

  6. #6
    Membre chevronné
    Profil pro
    Inscrit en
    mai 2006
    Messages
    708
    Détails du profil
    Informations personnelles :
    Localisation : Belgique

    Informations forums :
    Inscription : mai 2006
    Messages : 708
    Points : 1 820
    Points
    1 820
    Par défaut
    Citation Envoyé par popo Voir le message
    Et ces bases, tu ne les acquerras jamais si tu continue à laisser de tels outils bosser à ta place.
    Je suis complètement d'accord, et j'ai même envie d'ignorer tous les sujets avec du code pondus par une IA, parce que c'est le fruit de la fainéantise. Je viens bien aider mais les demandeurs doivent faire leur part d'effort et ne pas chercher des raccourcis constamment. Il est difficile de maîtriser un code qu'on n'a pas écrit soi-même si on n'a pas les bases.

    Mais ici j'ai l'impression que le problème n'est pas seulement VB.net mais aussi la syntaxe du SQL. Donc à ce stade, je pense qu'il faudrait lire des tutos ou des livres avant d'aller plus loin. Car sinon, on va se retrouver dans des situations où le code a l'air de marcher "dans ce cas de figure bien précis" mais n'est pas fiable du tout.

    Quand il y aura des questions techniques lors des entretiens d'embauche, vous n'aurez pas le droit d'utiliser l'IA, ou d'appeler un ami.

    A part ça, c'est une approche "naïve". On peut afficher une table (filtrée) dans un datagridview et le lier (bind) avec un SqlDataAdapter, ce qui permet de mettre à jour le contenu en éditant directement dans le DGV.

    Explications: https://learn.microsoft.com/en-us/vi...s-2022&tabs=vb
    Désolée, la lecture est un peu longue...

    Normalement, on ne met pas à jour la table directement, mais le datatable qui est lié au DGV, et puis on entérine (commit) les changements à la fin.. Ca veut dire qu'on peut changer plein de données localement, sans les répercuter immédiatement dans la DB. On committe tout "en bulk" une fois, à la fin.

    Mais ici, il n'y a même pas de datatable, on met à jour directement le DGV ce qui est à proscrire !

    Bref, l'IA n'est pas en cause mais elle a fourni un code qui peut être fonctionnel, mais qui est de mauvaise qualité et ne regarde pas plus loin que le bout de son nez. En faisant des recherches et en adaptant des exemples à votre besoin, vous auriez presque certainement trouvé une meilleure solution.

  7. #7
    Expert confirmé
    Avatar de popo
    Homme Profil pro
    Analyste programmeur Delphi / C#
    Inscrit en
    mars 2005
    Messages
    2 441
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Rhône (Rhône Alpes)

    Informations professionnelles :
    Activité : Analyste programmeur Delphi / C#
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : mars 2005
    Messages : 2 441
    Points : 4 700
    Points
    4 700
    Par défaut
    Citation Envoyé par binarygirl Voir le message
    Bref, l'IA n'est pas en cause mais elle a fourni un code qui peut être fonctionnel, mais qui est de mauvaise qualité et ne regarde pas plus loin que le bout de son nez. En faisant des recherches et en adaptant des exemples à votre besoin, vous auriez presque certainement trouvé une meilleure solution.
    Ceci est bon résumé des raisons pour lesquelles, je pense que les IA "pondent" du code dégueulasse.

  8. #8
    Membre chevronné Avatar de Thumb down
    Homme Profil pro
    Retraité
    Inscrit en
    juin 2019
    Messages
    1 307
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Rhône (Rhône Alpes)

    Informations professionnelles :
    Activité : Retraité

    Informations forums :
    Inscription : juin 2019
    Messages : 1 307
    Points : 2 022
    Points
    2 022
    Par défaut
    Bonjour,
    Personnellement je ne connaissais pas, j'ai testé et trouvé ça génial mais je pense qu'il ne faut pas être gourmand !

    1 https://www.perplexity.ai/search/06f...99c208db93?s=u

    2 https://www.perplexity.ai/search/470...a427ccc19c?s=u

    3 https://www.perplexity.ai/search/7a1...7702060db3?s=u

    4 https://www.perplexity.ai/search/7ab...8ef80e507f?s=u

  9. #9
    Membre chevronné
    Profil pro
    Inscrit en
    mai 2006
    Messages
    708
    Détails du profil
    Informations personnelles :
    Localisation : Belgique

    Informations forums :
    Inscription : mai 2006
    Messages : 708
    Points : 1 820
    Points
    1 820
    Par défaut
    J'ai rigolé en regardant le 4ème lien et en voyant l'orthographe
    On peut comprendre que l'IA soit perturbée et comprenne de travers certaines questions. Si c'est mal formulé, la réponse risque d'être déficiente.
    Mais même si le code était bon, rassembler tous ces petits morceaux de code pour créer un ensemble structuré et cohérent est un autre défi.

    En fait ça fait belle lurette que les IDE proposent des snippets pour les tâches courantes, et puis on a des bibliothèques de code etc. La seule nouveauté réside dans la personnalisation.

    Mais si tu veux être un peu plus moderne, tu utilises un ORM, dans le cas présent ce serait Entity Framework.
    Les méthodes proposées ici sont déjà du legacy et leur usage va se raréfier à l'avenir. SI c'est pour faire un nouveau truc, autant partir sur des bases plus modernes.

    Faire du Winforms OK, mais c'est aussi du legacy. Si je regarde les offres d'emploi, WPF revient souvent, ainsi que Entity Framework. Honnêtement, je ne connais pas encore mais je sais que ça existe. La prochaine fois que je dois travailler sur ce stack technique, je vais me mettre à niveau c'est clair. Mais je sens que c'est pas l'IA qui va me conseiller efficacement.

    Je suppose que l'IA s'est contentée de répondre à la question en donnant le moyen le plus direct et minimaliste d'arriver au résultat escompté.
    Mais c'est comme vouloir construire une maison sans se soucier des fondations. Ça donne un truc qui va se casser à la gueule rapidement.

  10. #10
    Membre chevronné Avatar de Thumb down
    Homme Profil pro
    Retraité
    Inscrit en
    juin 2019
    Messages
    1 307
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Rhône (Rhône Alpes)

    Informations professionnelles :
    Activité : Retraité

    Informations forums :
    Inscription : juin 2019
    Messages : 1 307
    Points : 2 022
    Points
    2 022
    Par défaut
    Bonjour,
    L'orthographe du troisième également et je m'en fiche !

+ Répondre à la discussion
Cette discussion est résolue.

Discussions similaires

  1. [MySQL] Modification d'un enregistrement dans une base de données
    Par hémilie dans le forum PHP & Base de données
    Réponses: 4
    Dernier message: 17/02/2015, 19h05
  2. Réponses: 2
    Dernier message: 23/05/2014, 08h41
  3. Réponses: 1
    Dernier message: 08/10/2012, 17h37
  4. Réponses: 5
    Dernier message: 08/07/2010, 08h07
  5. Réponses: 2
    Dernier message: 21/08/2009, 16h36

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo