Databinding - double liaison - important

Signaler
Messages postés
59
Date d'inscription
dimanche 9 février 2003
Statut
Membre
Dernière intervention
30 décembre 2008
-
Messages postés
59
Date d'inscription
dimanche 9 février 2003
Statut
Membre
Dernière intervention
30 décembre 2008
-
Bonjour à tous,

Voila : J'ai un formulaire décomposé en 2 parties. La partie d'en haut j'ai des textbox liées en Databinding sur une procédure stockée. Et la seconde partie j'ai un datagrid.

Je voudrais que mon datagrid m'informe plus en détail une liste d'information liée à la partie du dessus.
exemple : En haut j'ai un code article et en bas, je veux voir tous les clients qui me l'ont acheté.

Voici le code que j'ai utilisé pour lier la partie en haut (il me manque le code pour la partie d'en bas):

'Je cr‚‚ une string pour recevoir le nom de la proc‚dure stock‚e
Dim sproc3
As
String =
"ps_articzon3"

'Je cr‚‚ une variable command pour recevoir les donn‚es r‚sultant de 'sproc' avec la connexion 'Conn'
Dim ObjetCommand1
As
New SqlCommand(sproc3, Conn)

'Je d‚clare ici qu'il s'agit d'une proc‚dure stock‚e
ObjetCommand1.CommandType = CommandType.StoredProcedure

'Je d‚clare le(s) paramŠtre(s) de la ps
Dim param1
As
New SqlParameter(
"@codcli", SqlDbType.BigInt)
param1.Value = MainForm1.UltraStatusBar1.Panels(4).Text
ObjetCommand1.Parameters.Add(param1)

'j'essai d'ouvrir la connexion et de lancer la commande au server sql
Try
'Je test d'abord si la connexion est bien ouverte
If Conn.State <> System.Data.ConnectionState.Open
Then
Conn.Open()

End
If
'Je cr‚‚ d'abord les deux datatables pour recevoir les deux groupes de donn‚es
ObjetDataSet3.Tables.Add(
"dt_article_emplacements")

'Instancier un objet Adapter
ObjetDataAdapter1 =
New SqlDataAdapter(ObjetCommand1)

'Avec l'aide de la propri‚t‚ Fill du DataAdapter charger le DataSet
ObjetDataAdapter1.Fill(ObjetDataSet3,
"dt_article_emplacements")

Dim objetdatatable
As
New DataView
objetdatatable.Table = ObjetDataSet3.Tables(
"dt_article_emplacements")

BindingSource1.DataSource = objetdatatable
BindingNavigator1.BindingSource = BindingSource1

Me.AS_COARTI.DataBindings.Add(
"Text", BindingSource1,
"AS_COARTI")

Me.AS_DESART.DataBindings.Add(
"Text", BindingSource1,
"AS_DESART")

Merci de votre aide.

Laurent

1 réponse

Messages postés
59
Date d'inscription
dimanche 9 février 2003
Statut
Membre
Dernière intervention
30 décembre 2008
1
Hi,

Ok, voici mon code. Maintenant, j'arrive à afficher les données mais j'ai encore 2 soucis :
1- La navigation ne fonctionne plus. Je reste bloqué sur le premier article.
2- Dans mon datagrid dans la partie du bas, j'affiche toute ma procédure stockée, alors que je ne voudrais que les ligne concernant l'article en-cours. Sachant que l'article en-cours, c'est celui lié dans la partie du haut.

Merci de votre aide




'Je cr‚‚ une string pour recevoir le nom de la proc‚dure stock‚e



Dim

sproc3


As





String

=


"ps_articzon3"



Dim

sproc4


As





String

=


"ps_articzon4"













'Je cr‚‚ une variable command pour recevoir les donn‚es r‚sultant de 'sproc' avec la connexion 'Conn'



Dim

ObjetCommand1


As





New

SqlCommand(sproc3, Conn)



Dim

ObjetCommand2


As





New

SqlCommand(sproc4, Conn)



'Je d‚clare ici qu'il s'agit d'une proc‚dure stock‚e


ObjetCommand1.CommandType = CommandType.StoredProcedure
ObjetCommand2.CommandType = CommandType.StoredProcedure



'Je d‚clare le(s) paramŠtre(s) de la ps



Dim

param1


As





New

SqlParameter(


"@codcli"

, SqlDbType.BigInt)



Dim

param2


As





New

SqlParameter(


"@codcli"

, SqlDbType.BigInt)
param1.Value = MainForm1.UltraStatusBar1.Panels(4).Text
param2.Value = MainForm1.UltraStatusBar1.Panels(4).Text
ObjetCommand1.Parameters.Add(param1)
ObjetCommand2.Parameters.Add(param2)



'j'essai d'ouvrir la connexion et de lancer la commande au server sql



Try



'Je test d'abord si la connexion est bien ouverte



If

Conn.State <> System.Data.ConnectionState.Open


Then


Conn.Open()



End





If



'Je cr‚‚ d'abord les deux datatables pour recevoir les deux groupes de donn‚es


ObjetDataSet3.Tables.Add(


"dt_article_emplacements"

)
ObjetDataSet3.Tables.Add(


"dt_article_emplacements2"

)



'Instancier un objet Adapter


ObjetDataAdapter1 =


New

SqlDataAdapter(ObjetCommand1)
ObjetDataAdapter3 =


New

SqlDataAdapter(ObjetCommand2)



'Avec l'aide de la propri‚t‚ Fill du DataAdapter charger le DataSet


ObjetDataAdapter1.Fill(ObjetDataSet3,


"dt_article_emplacements"

)
ObjetDataAdapter3.Fill(ObjetDataSet3,


"dt_article_emplacements2"

)





Dim

objetdatatable


As





New

DataView
objetdatatable.Table = ObjetDataSet3.Tables(


"dt_article_emplacements"

)
objetdatatable.Table = ObjetDataSet3.Tables(


"dt_article_emplacements2"

)



'Je cr‚‚ la relation entre les deux tables add to DataSet



Dim

Relation1


As





New

DataRelation(


"Relation1"

, ObjetDataSet3.Tables(


"dt_article_emplacements"

).Columns(0), ObjetDataSet3.Tables(


"dt_article_emplacements2"

).Columns(1))
ObjetDataSet3.Relations.Add(Relation1)
ObjetDataSet3.EnforceConstraints =


True








'Je cr‚‚ mon binding


BindingSource1.DataSource = ObjetDataSet3







BindingNavigator1.BindingSource = BindingSource1














Me

.AS_COARTI.DataBindings.Add(


"Text"

, BindingSource1,


"dt_article_emplacements.AS_COARTI"

)








'Je positionne les objets dataset dans la UltraGrid



Me

.UltraGrid4.SetDataBinding(ObjetDataSet3,


"dt_article_emplacements2"

)



Finally



End





Try