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 :

Insertion d'une DateTimpiker dans une cellule de Datagridview en vb.net


Sujet :

VB.NET

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre éclairé
    Homme Profil pro
    ETUDE
    Inscrit en
    Septembre 2016
    Messages
    360
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Cameroun

    Informations professionnelles :
    Activité : ETUDE
    Secteur : High Tech - Électronique et micro-électronique

    Informations forums :
    Inscription : Septembre 2016
    Messages : 360
    Par défaut Insertion d'une DateTimpiker dans une cellule de Datagridview en vb.net
    Salut à tous j'ai une table GESTIONBONSONARA
    Nom : gfd.PNG
Affichages : 279
Taille : 14,3 Ko
    pour l'ajout de mes données dans la table j'agit directement dans la datagridview
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
      Dim cmt As String = "insert into GESTIONBONSONARA values('" & Me.DataGridView1.CurrentRow.Cells("date du bon").Value.ToString = DateTimePickerFormat.Short & "','" & Me.DataGridView1.CurrentRow.Cells("Destination").Value.ToString & "','" & Me.DataGridView1.CurrentRow.Cells("Chauffeur").Value.ToString & "','" & Me.DataGridView1.CurrentRow.Cells("Numero Vehicule").Value.ToString & "','" & Me.DataGridView1.CurrentRow.Cells("Transporteur").Value.ToString & "','" & Me.DataGridView1.CurrentRow.Cells("Date Chargement").Value.ToString & "','" & Me.DataGridView1.CurrentRow.Cells("PETROLE(Ambiant)").Value.ToString & "','" & Me.DataGridView1.CurrentRow.Cells("PETROLE(15°)").Value.ToString & "','" & Me.DataGridView1.CurrentRow.Cells("SUPER(Ambiant)").Value.ToString & "','" & Me.DataGridView1.CurrentRow.Cells("SUPER(15°)").Value.ToString & "','" & Me.DataGridView1.CurrentRow.Cells("GAZOIL(Ambiant)").Value.ToString & "','" & Me.DataGridView1.CurrentRow.Cells("GAZOIL(15°)").Value.ToString & "','" & Me.DataGridView1.CurrentRow.Cells("Credit").Value.ToString & "','" & Me.DataGridView1.CurrentRow.Cells("Debit").Value.ToString & "')"
    je voudrais intégré dans la cellule Me.DataGridView1.CurrentRow.Cells("date du bon").Value.ToString un DateTimepiker tel-que lors de l'insertion des données que je choisisse plutôt la date au lieu de la saisir mais la syntaxe vb.net je connais pas quelqu'un pourrais t'il m'aider? Merci d'avance

  2. #2
    Membre éclairé
    Homme Profil pro
    ETUDE
    Inscrit en
    Septembre 2016
    Messages
    360
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Cameroun

    Informations professionnelles :
    Activité : ETUDE
    Secteur : High Tech - Électronique et micro-électronique

    Informations forums :
    Inscription : Septembre 2016
    Messages : 360
    Par défaut
    Bonjour à tous j'ai trouver en partie la solution à mon problème
    j'ai trouver ce ci sur internet qui permet de créé un control Datetimepiker dans la datagridview
    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
    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
    Imports System
    Imports System.Windows.Forms
    Public Class GridDateControl
        Inherits DataGridViewColumn
     
        Public Sub New()
            MyBase.New(New CalendarCell())
        End Sub
     
        Public Overrides Property CellTemplate() As DataGridViewCell
            Get
                Return MyBase.CellTemplate
            End Get
            Set(ByVal value As DataGridViewCell)
     
                ' Ensure that the cell used for the template is a CalendarCell.
                If Not (value Is Nothing) AndAlso _
                    Not value.GetType().IsAssignableFrom(GetType(CalendarCell)) _
                    Then
                    Throw New InvalidCastException("Must be a CalendarCell")
                End If
                MyBase.CellTemplate = value
     
            End Set
        End Property
     
    End Class
     
    Public Class CalendarCell
        Inherits DataGridViewTextBoxCell
     
        Public Sub New()
            ' Use the short date format.
            Me.Style.Format = "d"
        End Sub
     
        Public Overrides Sub InitializeEditingControl(ByVal rowIndex As Integer, _
            ByVal initialFormattedValue As Object, _
            ByVal dataGridViewCellStyle As DataGridViewCellStyle)
     
            ' Set the value of the editing control to the current cell value.
            MyBase.InitializeEditingControl(rowIndex, initialFormattedValue, _
                dataGridViewCellStyle)
     
            Dim ctl As CalendarEditingControl = _
                CType(DataGridView.EditingControl, CalendarEditingControl)
            If Not Me.Value Is DBNull.Value Then
                If Not Me.Value Is Nothing Then
                    ctl.Value = CType(Me.Value, DateTime)
                End If
            End If
        End Sub
     
        Public Overrides ReadOnly Property EditType() As Type
            Get
                ' Return the type of the editing contol that CalendarCell uses.
                Return GetType(CalendarEditingControl)
            End Get
        End Property
     
        Public Overrides ReadOnly Property ValueType() As Type
            Get
                ' Return the type of the value that CalendarCell contains.
                Return GetType(DateTime)
            End Get
        End Property
        'Public Property CustomFocus() As Boolean
        '    Get
     
        '    End Get
        '    Set(ByVal value As Boolean)
        '        If CustomFocus Then
        '            ctl.Select()
        '            SendKeys.Send("%{Down}")
        '        End If
        '    End Set
        'End Property
    End Class
     
    Class CalendarEditingControl
        Inherits DateTimePicker
        Implements IDataGridViewEditingControl
     
        Private dataGridViewControl As DataGridView
        Private valueIsChanged As Boolean = False
        Private rowIndexNum As Integer
     
        Public Sub New()
            Me.Format = DateTimePickerFormat.Short
        End Sub
     
        Public Property EditingControlFormattedValue() As Object _
            Implements IDataGridViewEditingControl.EditingControlFormattedValue
     
            Get
                Return Me.Value.ToShortDateString()
            End Get
     
            Set(ByVal value As Object)
                If TypeOf value Is [String] Then
                    Me.Value = DateTime.Parse(CStr(value))
                End If
            End Set
     
        End Property
     
        Public Function GetEditingControlFormattedValue(ByVal context _
            As DataGridViewDataErrorContexts) As Object _
            Implements IDataGridViewEditingControl.GetEditingControlFormattedValue
     
            Return Me.Value.ToShortDateString()
     
        End Function
     
        Public Sub ApplyCellStyleToEditingControl(ByVal dataGridViewCellStyle As _
            DataGridViewCellStyle) _
            Implements IDataGridViewEditingControl.ApplyCellStyleToEditingControl
     
            Me.Font = dataGridViewCellStyle.Font
            Me.CalendarForeColor = dataGridViewCellStyle.ForeColor
            Me.CalendarMonthBackground = dataGridViewCellStyle.BackColor
     
        End Sub
     
        Public Property EditingControlRowIndex() As Integer _
            Implements IDataGridViewEditingControl.EditingControlRowIndex
     
            Get
                Return rowIndexNum
            End Get
            Set(ByVal value As Integer)
                rowIndexNum = value
            End Set
     
        End Property
     
        Public Function EditingControlWantsInputKey(ByVal key As Keys, _
            ByVal dataGridViewWantsInputKey As Boolean) As Boolean _
            Implements IDataGridViewEditingControl.EditingControlWantsInputKey
     
            ' Let the DateTimePicker handle the keys listed.
            Select Case key And Keys.KeyCode
                Case Keys.Left, Keys.Up, Keys.Down, Keys.Right, _
                    Keys.Home, Keys.End, Keys.PageDown, Keys.PageUp
     
                    Return True
     
                Case Else
                    Return False
            End Select
     
        End Function
     
        Public Sub PrepareEditingControlForEdit(ByVal selectAll As Boolean) _
            Implements IDataGridViewEditingControl.PrepareEditingControlForEdit
     
            ' No preparation needs to be done.
     
        End Sub
     
        Public ReadOnly Property RepositionEditingControlOnValueChange() _
            As Boolean Implements _
            IDataGridViewEditingControl.RepositionEditingControlOnValueChange
     
            Get
                Return False
            End Get
     
        End Property
     
        Public Property EditingControlDataGridView() As DataGridView _
            Implements IDataGridViewEditingControl.EditingControlDataGridView
     
            Get
                Return dataGridViewControl
            End Get
            Set(ByVal value As DataGridView)
                dataGridViewControl = value
            End Set
     
        End Property
     
        Public Property EditingControlValueChanged() As Boolean _
            Implements IDataGridViewEditingControl.EditingControlValueChanged
     
            Get
                Return valueIsChanged
            End Get
            Set(ByVal value As Boolean)
                valueIsChanged = value
            End Set
     
        End Property
     
        Public ReadOnly Property EditingControlCursor() As Cursor _
            Implements IDataGridViewEditingControl.EditingPanelCursor
     
            Get
                Return MyBase.Cursor
            End Get
     
        End Property
     
        Protected Overrides Sub OnValueChanged(ByVal eventargs As EventArgs)
     
            ' Notify the DataGridView that the contents of the cell have changed.
            valueIsChanged = True
     
            Me.EditingControlDataGridView.NotifyCurrentCellDirty(True)
            MyBase.OnValueChanged(eventargs)
     
        End Sub
     
    End Class
    ensuite
    j'ai créé les colonnes dans ma datagridview

    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
      Dim chk, chl As New GridDateControl()
            DataGridView1.Columns.Add(chk)
            DataGridView1.Columns.Add(chl)
            chk.HeaderText = "date du bon"
            chk.Name = "chk"
            chl.HeaderText = "Date Chargement"
            chl.Name = "chl"
            DataGridView1.ColumnCount = 14
            DataGridView1.Columns(2).Name = "Destination"
            DataGridView1.Columns(3).Name = "Chauffeur"
            DataGridView1.Columns(4).Name = "Numero Vehicule"
            DataGridView1.Columns(5).Name = "Transporteur"
            DataGridView1.Columns(6).Name = "PETROLE(Ambiant)"
            DataGridView1.Columns(7).Name = "PETROLE(15°)"
            DataGridView1.Columns(8).Name = "SUPER(Ambiant)"
            DataGridView1.Columns(9).Name = "SUPER(15°)"
            DataGridView1.Columns(10).Name = "GAZOIL(Ambiant)"
            DataGridView1.Columns(11).Name = "GAZOIL(15°)"
            DataGridView1.Columns(12).Name = "Credit"
            DataGridView1.Columns(13).Name = "Debit"
    ensuit je mais dans lévènement load
    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
    Private Sub Form2_Load(sender As Object, e As EventArgs) Handles MyBase.Load
            connetionString = "Data source=(LocalDB)\MSSQLLocalDB;Initial Catalog=GESTION_CAPOGCO;Integrated Security=SSPI"
            connection = New SqlConnection(connetionString)
     
            Dim chk, chl As New GridDateControl()
            DataGridView1.Columns.Add(chk)
            DataGridView1.Columns.Add(chl)
            chk.HeaderText = "date du bon"
            chk.Name = "chk"
            chl.HeaderText = "Date Chargement"
            chl.Name = "chl"
            DataGridView1.ColumnCount = 14
            DataGridView1.Columns(2).Name = "Destination"
            DataGridView1.Columns(3).Name = "Chauffeur"
            DataGridView1.Columns(4).Name = "Numero Vehicule"
            DataGridView1.Columns(5).Name = "Transporteur"
            DataGridView1.Columns(6).Name = "PETROLE(Ambiant)"
            DataGridView1.Columns(7).Name = "PETROLE(15°)"
            DataGridView1.Columns(8).Name = "SUPER(Ambiant)"
            DataGridView1.Columns(9).Name = "SUPER(15°)"
            DataGridView1.Columns(10).Name = "GAZOIL(Ambiant)"
            DataGridView1.Columns(11).Name = "GAZOIL(15°)"
            DataGridView1.Columns(12).Name = "Credit"
            DataGridView1.Columns(13).Name = "Debit"
            sql = "SELECT [date du bon],[Destination],[Chauffeur],[Numero Vehicule],[Transporteur],[Date Chargement],[PETROLE(Ambiant)],[PETROLE(15°)],[SUPER(Ambiant)],[SUPER(15°)],[GAZOIL(Ambiant)],[GAZOIL(15°)],[Credit],[Debit] from [dbo].[GESTIONBONSONARA]"
     
            Try
                connection.Open()
                adapter = New SqlDataAdapter(sql, connection)
                adapter.Fill(ds)
                connection.Close()
     
                DataGridView1.DataSource = ds.Tables(0)
     
                DataGridView1.AutoSizeColumnsMode =
                DataGridViewAutoSizeColumnsMode.AllCells
                DataGridView1.Refresh()
            Catch ex As Exception
                MsgBox(ex.ToString)
            End Try
     
     
        End Sub
    mais lors de l’affichage les colonnes sont multipliés par deux et je ne parviens pas à insérer les données dans les colonnes que j'ai créé
    je voudrais donc savoir comment résoudre se genre de problème?

  3. #3
    Membre éclairé
    Homme Profil pro
    ETUDE
    Inscrit en
    Septembre 2016
    Messages
    360
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Cameroun

    Informations professionnelles :
    Activité : ETUDE
    Secteur : High Tech - Électronique et micro-électronique

    Informations forums :
    Inscription : Septembre 2016
    Messages : 360
    Par défaut
    Bonjour à tous je viens encore vers vous se matin avec mon problème si quelqu'un à une idée elle serait la bien venue

  4. #4
    Membre éclairé
    Homme Profil pro
    ETUDE
    Inscrit en
    Septembre 2016
    Messages
    360
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Cameroun

    Informations professionnelles :
    Activité : ETUDE
    Secteur : High Tech - Électronique et micro-électronique

    Informations forums :
    Inscription : Septembre 2016
    Messages : 360
    Par défaut
    Salut tous la solution est trouver pour ceux qui sont intéresser ou qui son nouveau comme moi en vb.net
    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
    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
     Dim con As New SqlConnection("Data source=.\SQLEXPRESS;Initial Catalog=GESTION_USINES;Integrated Security=SSPI")
        Private Sub Form1_Load(sender As Object, e As EventArgs) Handles MyBase.Load
            Dim chk, chl As New GridDateControl()
            DataGridView1.Columns.Add(chk)
     
            With DataGridView1
     
                .Rows.Clear()
                .ColumnCount = 4
                chk.HeaderText = "jour"
                chk.Width = 100
                chk.Name = "chk"
     
                chk.HeaderCell.Style.Alignment = DataGridViewContentAlignment.MiddleCenter
     
     
                .Columns(1).HeaderText = "IdClient"
     
                .Columns(1).DefaultCellStyle.Alignment = DataGridViewContentAlignment.MiddleCenter
                .Columns(1).HeaderCell.Style.Alignment = DataGridViewContentAlignment.MiddleCenter
     
                .Columns(2).HeaderText = "Nom"
     
                .Columns(2).HeaderCell.Style.Alignment = DataGridViewContentAlignment.MiddleCenter
     
                .Columns(3).HeaderText = "Prenom"
     
                .Columns(3).HeaderCell.Style.Alignment = DataGridViewContentAlignment.MiddleCenter
            End With
            DataGridView1.AutoSizeColumnsMode =
                DataGridViewAutoSizeColumnsMode.AllCells
            chargerClient()
        End Sub
        Private Sub chargerClient()
            Dim sql As String = "select * from Client"
            Dim Adapter As New SqlDataAdapter(sql, con)
            Dim Dataset As New DataSet
            Dim RowsCount As Integer
     
            DataGridView1.Rows.Clear()
     
            If con.State = ConnectionState.Closed Then
                con.Open()
                Adapter.Fill(Dataset, "Client")
                RowsCount = Dataset.Tables("Client").Rows.Count
                If RowsCount < 1 Then
                    MsgBox("desole dd", MsgBoxStyle.Critical, "desole")
                    Dataset.Reset()
                    con.Close()
                Else
                    DataGridView1.Rows.Add(RowsCount)
     
                    For i As Integer = 0 To RowsCount - 1
                        With DataGridView1
                            .Rows(i).Cells(0).Value = Dataset.Tables("Client").Rows(i).Item("jour")
                            .Rows(i).Cells(1).Value = Dataset.Tables("Client").Rows(i).Item("IdClient")
                            .Rows(i).Cells(2).Value = Dataset.Tables("Client").Rows(i).Item("Nom")
                            .Rows(i).Cells(3).Value = Dataset.Tables("Client").Rows(i).Item("Prenom")
                        End With
     
                    Next
                End If
                Dataset.Reset()
                con.Close()
            End If
        End Sub
     
        Private Sub Button1_Click(sender As Object, e As EventArgs) Handles Button1.Click
            Try
                con.Open()
                Dim cmt As String = "insert into Client values('" & Me.DataGridView1.CurrentRow.Cells(0).Value.ToString & "','" & Me.DataGridView1.CurrentRow.Cells(1).Value.ToString & "','" & Me.DataGridView1.CurrentRow.Cells(2).Value.ToString & "','" & Me.DataGridView1.CurrentRow.Cells(2).Value.ToString & "')"
                Dim cmd = New SqlCommand(cmt, con)
                cmd.ExecuteNonQuery()
                con.Close()
     
                MsgBox("ok")
            Catch ex As Exception
                MsgBox(ex.Message)
            End Try
        End Sub
     
     
     
    End Class

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

Discussions similaires

  1. [AC-2010] Dans une table, copier une valeur dans les cellules vides suivantes
    Par stsym dans le forum VBA Access
    Réponses: 4
    Dernier message: 15/12/2016, 21h09
  2. Réponses: 2
    Dernier message: 23/03/2014, 12h05
  3. portée d'une variable dans une fonction dans une méthode
    Par laurentg2003 dans le forum Général JavaScript
    Réponses: 4
    Dernier message: 29/06/2009, 19h05
  4. [POO] dans une classe, appeler une fonction dans une méthode
    Par arnaudperfect dans le forum Langage
    Réponses: 3
    Dernier message: 26/08/2007, 23h04
  5. Envoyer une formulaire dans une page dans une Frame
    Par zooffy dans le forum Balisage (X)HTML et validation W3C
    Réponses: 5
    Dernier message: 29/06/2007, 10h13

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