VB dataset tableadapter update oledb / odbc
Bonjour,
j'essaie depuis qq jours de trouver une solution a mon pb, mais rien....
je veux recuperer les donnees d'une base access dans un dataset et une datagrid. jusque la pas de probleme.
voir code a la fin
Mais ce que je veux, c 'est afficher des requetes variables a la demande, pouvoir modifier les donnees dans le datagrid, et mettre a jour avec un update la base access.
Créer la requete de l'update n 'est pas un probleme, la question est comment gérer l'update, c'est a dire la descente d'infos de la datagrid vers le dataset et le data adapter ?
Je sais que Visual Studio génere automatiquement le codage, mais les requetes sont fixes, ou paramétrées. Moi, je vais effectuer des requetes dynamiques, c 'est a dire que les parametres peuvent passer de 1 a plusieurs
ex requete 1
SELECT date, nom, valeur FROM table WHERE (valeur => '100')
j affiche, je modifie, j envoie dans la base
puis dans la userform, je mets de nouveaux parametres
SELECT date, nom, valeur, type FROM table WHERE (valeur <> '100') AND (type = 'A')
j affiche le resultat dans le meme datagrid, puis je modifie, j'envoie dans la base.......et ainsi de suite
Code:
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
| Private Sub Form1_Load(ByVal sender As Object, ByVal e As System.EventArgs) Handles Me.Load
Dim cn As Odbc.OdbcConnection
Dim connectionString As String = "Dsn=mydatabase;dbq=C:\mabase.mdb;driverid=25;fil=MS Access;maxbuffersize=2048;pagetimeout=5;uid=admin"
cn = New Odbc.OdbcConnection(connectionString)
cn.Open()
Dim cmd As New Odbc.OdbcCommand("select * from matable", cn)
Me.dataAdapter = New Odbc.OdbcDataAdapter(cmd)
' With dataGridView1.ColumnHeadersDefaultCellStyle
With DataGridView1
.AutoSizeRowsMode = DataGridViewAutoSizeRowsMode.AllCells
.AutoSizeColumnsMode = DataGridViewAutoSizeColumnsMode.ColumnHeader
.AutoSizeColumnsMode = DataGridViewAutoSizeColumnsMode.ColumnHeader
End With
Dim commandBuilder As New Odbc.OdbcCommandBuilder(Me.dataAdapter)
Dim table As New DataTable()
table.Locale = System.Globalization.CultureInfo.InvariantCulture
Me.dataAdapter.Fill(table)
Me.bindingSource1.DataSource = table
Me.DataGridView1.DataSource = Me.bindingSource1
Me.DataGridView1.AlternatingRowsDefaultCellStyle.BackColor = Color.Aqua
Me.DataGridView1.AutoResizeColumns(DataGridViewAutoSizeColumnsMode.AllCells)
Dim data As New DataSet()
data.Locale = System.Globalization.CultureInfo.InvariantCulture
End Sub |