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
|
Imports System.Data
Imports System.Data.OleDb
Public Class Form4
Private DA As OleDbDataAdapter = Nothing
Private BUILDER As OleDbCommandBuilder = Nothing 'BUILDER n'est utilisable que si la table EN BASE DE DONNEES est indexée(cle primaire)
Private Connexion As OleDbConnection = Nothing
Private stringConnexion As String = My.Settings.bdtestConnectionString
Private Sub Form4_Load(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles MyBase.Load
Dim dt As New DataTable("Test")
DS.Tables.Add(dt)
Using Connexion = New OleDbConnection(stringConnexion)
Connexion.Open()
Dim strinSQL As String = "SELECT * FROM Test"
Dim cmd As New OleDbCommand(strinSQL, Connexion)
DA = New OleDbDataAdapter(cmd)
DA.Fill(DS, dt.TableName)
BUILDER = New OleDbCommandBuilder(DA)
BUILDER.GetUpdateCommand()
BUILDER.GetInsertCommand()
BUILDER.GetDeleteCommand()
End Using
Navigator.BindingSource = BDS1
BDS1.DataSource = DS
BDS2.DataSource = DS
BDS3.DataSource = DS
BDS1.DataMember = dt.TableName
BDS2.DataMember = dt.TableName
BDS3.DataMember = dt.TableName
DataGridView1.DataSource = BDS1
PrepareBoxes()
End Sub
Private Sub PrepareBoxes()
Me.boxNumero1.DataBindings.Add("Text", BDS1, "NUMERO", True, DataSourceUpdateMode.OnPropertyChanged)
Me.boxNom1.DataBindings.Add("Text", BDS1, "NOM", True, DataSourceUpdateMode.OnPropertyChanged)
Me.boxPrenom1.DataBindings.Add("Text", BDS1, "PRENOM", True, DataSourceUpdateMode.OnPropertyChanged)
Me.boxAge1.DataBindings.Add("Text", BDS1, "AGE", True, DataSourceUpdateMode.OnPropertyChanged)
Me.boxNumero2.DataBindings.Add("Text", BDS2, "NUMERO", True, DataSourceUpdateMode.OnPropertyChanged)
Me.boxNom2.DataBindings.Add("Text", BDS2, "NOM", True, DataSourceUpdateMode.OnPropertyChanged)
Me.boxPrenom2.DataBindings.Add("Text", BDS2, "PRENOM", True, DataSourceUpdateMode.OnPropertyChanged)
Me.boxAge2.DataBindings.Add("Text", BDS2, "AGE", True, DataSourceUpdateMode.OnPropertyChanged)
Me.boxNumero3.DataBindings.Add("Text", BDS3, "NUMERO", True, DataSourceUpdateMode.OnPropertyChanged)
Me.boxNom3.DataBindings.Add("Text", BDS3, "NOM", True, DataSourceUpdateMode.OnPropertyChanged)
Me.boxPrenom3.DataBindings.Add("Text", BDS3, "PRENOM", True, DataSourceUpdateMode.OnPropertyChanged)
Me.boxAge3.DataBindings.Add("Text", BDS3, "AGE", True, DataSourceUpdateMode.OnPropertyChanged)
End Sub
Private i As Integer = 0
Private Sub btnSave_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles btnSave.Click
If DA Is Nothing Then Return
Using Connexion = New OleDbConnection(stringConnexion)
Connexion.Open()
DA.Update(DS, "Test")
End Using
End Sub
'ajout d'un enregistrement par le biais de BDS1 sur premiere ligne
'comme la table EN BASE DE DONNEES est indexe sur le champ NUMERO cela suffit
'On peut completer les champs restants immediatement apres.
'ou bien sauvegarder en BASE(save) et les completer plus tard
Private Sub btnAdd_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles btnAdd.Click
If DA Is Nothing Then Return
Me.boxNumero1.Select()
Dim drv As DataRowView = BDS1.AddNew()
Me.boxNumero1.Text = BDS1.Position.ToString
drv.Row("NUMERO") = CType(Me.boxNumero1.Text, Integer)
End Sub
Private Sub BDS1_PositionChanged(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles BDS1.PositionChanged
If BDS1.Position = BDS1.Count - 3 Then
BDS1.Position = 0
End If
BDS2.Position = BDS1.Position + 1
BDS3.Position = BDS1.Position + 2
lblBDS1.Text = BDS1.Position.ToString()
lblBDS2.Text = BDS2.Position.ToString()
lblBDS3.Text = BDS3.Position.ToString()
End Sub
End Class |