Bonsoir,
Pour cela plus de problème, sauf un autre problème. C'est que @? ne fait plus référence à mes 2 textbox.
Comment mettre les variables de mes 2 textbox svp?
Cordialement,
Vincent
Bonsoir,
Pour cela plus de problème, sauf un autre problème. C'est que @? ne fait plus référence à mes 2 textbox.
Comment mettre les variables de mes 2 textbox svp?
Cordialement,
Vincent
Ben si tu regardes tout le fil de cette discussion tu ne les avais jamais mis.
met bien les ? comme présenté dans la requête.
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5 marequete = "select Mois, CU_h, RDV, Pourcentage_Production, Prime from R_Altitude_Prod where Matricule Like ? And Annee LIKE ?" With ole.Parameters .Add(New OleDbParameter("?", OleDbType.Integer, 4)).value = Integer.Parse(txtMatricule.text) ' correspond au parametre Matricule Like ? .Add(New OleDbParameter("?", OleDbType.Integer, 4)).value = Integer.Parse(txtAnnee.text) ' correspond au parametre Annee LIKE ? End With
Traductions d'articles :
La mémoire en .NET - Qu'est-ce qui va où ?
Architecture DAL de haute performance et DTO ; Version C# : Partie 1,Partie 2,Partie 3 — Version VB.NET : Partie 1,Partie 2,Partie 3
N'hésitez pas à consulter la FAQ VB.NET, le cours complet de Philippe Lasserre et tous les cours, articles et tutoriels.
Bonsoir,
Merci pour tes réponses et pour toute la patience de chacun d'entre vous.
Mais j'ai une erreur sur "AdapTUSER.ExecuteNonQuery()"
Le message est " Aucune valeur donnée pour un ou plusieurs des paramètres requis."
Pourtant j'ai bien ces données dans la bdd.
Voici le code actuel:
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 marequete = "select Mois, CU_h, RDV, Pourcentage_Production, Prime from R_Altitude_Prod where Matricule Like ? And Annee LIKE ?" With ole.Parameters .Add(New OleDbParameter("?", OleDbType.Char, 4)).Value = Split(TextBox1.Text) ' correspond au parametre Matricule Like ? .Add(New OleDbParameter("?", OleDbType.Char, 4)).Value = Split(TextBox2.Text) ' correspond au parametre Annee LIKE ? End With 'definition du DataAdapter AdapTUSER = New OleDbCommand(marequete, Connection) ' rempli le dataset AdapTUSER.Connection.Open() AdapTUSER.ExecuteNonQuery() AdapTUSER.Connection.Close()
Cordialement,
Vincent.
J'ai été inattentif (désolé, je passe parfois rapidement en revu le sujet), avec le like il faut mettre le joker % de chaque coté pour la recherche (suivant l'année d'access ce joker peut être différent, mais je ne me souviens plus des conditions, il ya un sujet dessus en recherchant on doit pouvoir le retrouver)
.
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5 marequete = "select Mois, CU_h, RDV, Pourcentage_Production, Prime from R_Altitude_Prod where Matricule Like ? And Annee LIKE ?" With ole.Parameters .Add(New OleDbParameter("?", OleDbType.VarChar, 4)).value = "%" & Me.txtMatricule.Text & "%" ' correspond au parametre Matricule Like ? .Add(New OleDbParameter("?", OleDbType.VarChar, 4)).value = "%" & Me.txtAnnee.Text & "%" ' correspond au parametre Annee LIKE ? End With
Mais pour revenir à l'erreur
C'est normal "ole" et "AdapTUSER" n'ont rien à voir. (et le split ?)
Essaye de comprendre ce que tu fais, quelle est la logique d'enchaînement des opérations. Et pourquoi tu as ce message (très explicite)
[Edit]Bon j'ai revu la discussion
Regarde ton premier post, à quoi sert AdapTUSER.ExecuteNonQuery() ?
Que veux-tu faire ? une interrogation ou une mise à jour ?
A mon avis tu devrais relire un tuto pour éclaircir le fonctionnement.
Traductions d'articles :
La mémoire en .NET - Qu'est-ce qui va où ?
Architecture DAL de haute performance et DTO ; Version C# : Partie 1,Partie 2,Partie 3 — Version VB.NET : Partie 1,Partie 2,Partie 3
N'hésitez pas à consulter la FAQ VB.NET, le cours complet de Philippe Lasserre et tous les cours, articles et tutoriels.
Bonsoir,
Merci pour les réponses.
Ce que je souhaite. C'est pour lire une base de données.
J'ai toujours une erreur pour executenonquery()
J'ai essayé de comprendre d'où cela vient.
Je remet le code:
Cordialement,
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 Imports System Imports System.Data Imports System.Data.OleDb Imports Microsoft.VisualBasic Imports System.Data.SqlClient Public Class Form1 'les variables Dim Connection As New OleDbConnection Dim DtSet As New DataSet() Dim AdapTUSER As OleDbCommand Dim marequete As String Dim ole As New OleDbCommand 'Dim parameter As OleDbParameter Private Sub Button1_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button1.Click Dim Matable As DataTable DtSet.Tables.Clear() 'on parametre la chaine de connection pour la base de donnée testbdd.mdb Connection.ConnectionString = "Provider=Microsoft.ACE.OLEDB.12.0; Data Source=D:\BDD_test.accdb;" 'ma requete 'sql = "select Mois, CU_h, RDV, Pourcentage_Production, Prime from R_Altitude_Prod where Matricule Like '%" & TextBox1.Text & "' And Annee Like '%" & TextBox2.Text & "' " marequete = "select Mois, CU_h, RDV, Pourcentage_Production, Prime from R_Altitude_Prod where Matricule Like ? And Annee LIKE ?" With ole.Parameters .Add(New OleDbParameter("?", OleDbType.VarChar, 4)).Value = "%" & Me.TextBox1.Text & "%" ' correspond au parametre Matricule Like ? .Add(New OleDbParameter("?", OleDbType.VarChar, 4)).Value = "%" & Me.TextBox2.Text & "%" ' correspond au parametre Annee LIKE ? End With 'definition du DataAdapter AdapTUSER = New OleDbCommand(marequete, Connection) ' rempli le dataset AdapTUSER.Connection.Open() AdapTUSER.ExecuteNonQuery() AdapTUSER.Connection.Close() 'on ferme la connection Connection.Close() 'ajoute un datagrid sur ta form et ce code va relier ta table USER au datagrid qui va t'afficher les donnée 'affichage des données dans le datagrid Matable = DtSet.Tables("R_Altitude_Prod") With DataGrid1 'alimentation de matable .DataSource = Matable 'Ligne paire en blanc .RowsDefaultCellStyle.BackColor = Color.White 'ligne impaire en bleu claire .AlternatingRowsDefaultCellStyle.BackColor = Color.LightBlue 'Empeche la saisie dans les cellules .EditMode = DataGridViewEditMode.EditProgrammatically 'masquer l'entete de sélection .RowHeadersVisible = False End With End Sub End Class
Vincent.
Réfléchi pourquoi.
Vois aussi ce point
Ensuite même si tu corriges les deux points au dessus, tu ne fais rien de AdapTUSER.
Quel est le lien avec la fin du code ?
Reprend un tuto parceque la tu ne sais absolument pas ce qui se passe et c'est pour cela que tu n'avances pas.
Traductions d'articles :
La mémoire en .NET - Qu'est-ce qui va où ?
Architecture DAL de haute performance et DTO ; Version C# : Partie 1,Partie 2,Partie 3 — Version VB.NET : Partie 1,Partie 2,Partie 3
N'hésitez pas à consulter la FAQ VB.NET, le cours complet de Philippe Lasserre et tous les cours, articles et tutoriels.
Résumons
Tu as créé 2 variables indépendante, dans une tu mets les paramètres, dans l'autre la requête et la commande d'exécution.
Ce sont 2 variables indépendante qui ne se connaissent pas.
Réponse : à faire un update, un insert ou un delete.
Vérifie les noms des colonnes dans ta base de données avec ceux de ta requête.
Exemple :
J'ai "OleDb." parceque je n'ai pas fait l'imports
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 Public Sub LectureProd(ByVal Matricule As String, ByVal Annee As String) Try Using cnn As New OleDb.OleDbConnection("Provider=Microsoft.ACE.OLEDB.12.0;Data Source=D:\data\Personnes\Personnes.accdb") Using cmd As New OleDb.OleDbCommand("select Mois, CU_h, RDV, Pourcentage_Production, Prime from Prod where Matricule like ? And [Annee] like ?", cnn) cmd.Parameters.Add(New OleDb.OleDbParameter("Matricule", OleDb.OleDbType.VarChar, 4)).Value = "%" & Matricule & "%" cmd.Parameters.Add(New OleDb.OleDbParameter("Annee", OleDb.OleDbType.VarChar, 4)).Value = "%" & Annee & "%" cnn.Open() Using dr As OleDb.OleDbDataReader = cmd.ExecuteReader() While dr.Read MessageBox.Show(String.Format(" Mois: {0} ; prime: {1} ; rdv: {2} ; % {3}", dr("mois"), dr("Prime"), dr("RDV"), dr("Pourcentage_Production"))) End While End Using End Using End Using Catch ex As Exception MessageBox.Show(ex.Message) End Try End Sub
Les paramètres pourraient être rajouté ainsi
messagebox résultant
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2 cmd.Parameters.AddWithValue("?", "%" & Matricule & "%") cmd.Parameters.AddWithValue("?", "%" & Annee & "%")
Traductions d'articles :
La mémoire en .NET - Qu'est-ce qui va où ?
Architecture DAL de haute performance et DTO ; Version C# : Partie 1,Partie 2,Partie 3 — Version VB.NET : Partie 1,Partie 2,Partie 3
N'hésitez pas à consulter la FAQ VB.NET, le cours complet de Philippe Lasserre et tous les cours, articles et tutoriels.
Bonsoir rv26t,
Merci beaucoup. Je commence à comprendre le principe. Tout est bien alimenté dans la datagrid.
Merci vraiment pour le temps passé et pour l'aide que vous m'avez apporté. En plus tout fonctionne parfaitement.
Cordialement,
Vincent.
Partager