Bonjour à tous,

Je ne vois pas de solution facile et rapide pour mettre à jour ma base de données SQL2008 STD.

Condition:
J'ai une FORM qui contient 2 Datagridview (l'un sous l'autre) et correctement chargés.
Le premier (DG_Planning) contient une agrégation de données pour ne donner qu'une ligne de quantité totale à produire.
Le second (DG_detail) contient le détail de la ligne sélectionnée dans DG_Planning, soit 1 ou x lignes (on peut pas savoir).
Lors d'un click ou changement de selection dans DG_Planning, DG_Detail est actualisé.

Sur le coté, j'ai un TXTbox vide. L'utilisateur doit sélectionner une ligne de DG_Planning puis renseigner le Txtbox (alphanumérique) et enfin valider.
Le fait de valider doit ajouter la valeur de mon TXTBOX autant de fois qu'il y a de ligne dans DG_Detail (puisque ma base de données est ainsi faite).

Le problème est que je ne vois pas comment aborder cet update..

Un peu de code:

Code vb.net : 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
    Private Sub InitializeDataGridView_DG_Planning()
 
        Try
            ' Remplissage du DataGridView.
            With Me.DG_Planning
 
                .AutoGenerateColumns = True
 
                bindingPlanning.DataSource = GetData("SELECT UP,CM,NOMENCLATURE,LIBELLE,QUALITE,TAUX_RC,DIAM,[DATE] " & _
                                                    " ,MICRO,CAST(PCHARGE as FLOAT) / 10 as PCHARGE, SUM(NBC) AS NBC, Retard " & _
                                                    " FROM dbo.PDC01_Preparation_Charge " & _
                                                    " GROUP BY UP,CM,NOMENCLATURE,LIBELLE,QUALITE,TAUX_RC,DIAM,[DATE],MICRO,PCHARGE,RETARD " & _
                                                    " ORDER BY Retard DESC ")
                .DataSource = bindingPlanning
 
                .RowTemplate.Height = 30
 
                .BorderStyle = BorderStyle.Fixed3D
 
            End With
 
        Catch ex As SqlException
            MsgBox(ex.Message, MsgBoxStyle.Exclamation, "PDC Planning")
            System.Threading.Thread.CurrentThread.Abort()
        End Try
    End Sub

Code vb.net : 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
 Private Sub InitializeDataGridView_DG_Detail()
 
        Try
 
            With Me.DG_Detail
 
                .AutoGenerateColumns = True
 
                bindingDetail.DataSource = GetData("SELECT [DATE] ,[MICRO],[OF],[MPN],[PCHARGE] / 10 as PCHARGE, [NBC] " & _
                                                    " FROM PDC01_Preparation_Charge WHERE [DATE] = '" & tb_date.Text & "' AND MICRO = '" & tb_Micro.Text & "' ")
                .DataSource = bindingDetail
 
                .AutoSizeColumnsMode = DataGridViewAutoSizeColumnsMode.DisplayedCells
 
                .BorderStyle = BorderStyle.Fixed3D
 
            End With
 
        Catch ex As SqlException
            MsgBox(ex.Message, MsgBoxStyle.Exclamation, "PDC Planning")
            System.Threading.Thread.CurrentThread.Abort()
        End Try
END SUB

Code vb.net : 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
    Private Shared Function GetData(ByVal sqlCommand As String) _
            As DataTable
 
        Try
            Dim connectionString As String = _
                        "Integrated Security=SSPI;Persist Security Info=False;" _
                        & "Initial Catalog= " & Base & " ;Data Source= " & DataSource & ""
 
            Dim myConnection As SqlConnection = _
                New SqlConnection(connectionString)
 
 
            Dim command As New SqlCommand(sqlCommand, myConnection)
            Dim adapter As SqlDataAdapter = New SqlDataAdapter()
            adapter.SelectCommand = command
 
            Dim table As New DataTable
            table.Locale = System.Globalization.CultureInfo.InvariantCulture
            adapter.Fill(table)
 
            Return table
        Catch ex As Exception
            MsgBox(ex.Message)
        End Try
 
 
    End Function

Merci pour vos idées!