Se connecter / S'enregistrer

Résolu Datagridview c#

Solutions (10)
Tags :
  • Debug
  • Arraylist
  • Sql
  • Programmation
|
J'ai une datagridview qui contient des personne "id" "nom" et ... je veut selectionner des persones de cette datagrid et les inserer dans une datagridview de client. merci pour l'aide

j'utilise VS2008 et SQL 2005
Contenus similaires
Meilleure solution
partage
, Modérateur |
On ne voit pas les données de ta prospection.

Le plus simple c'est que tu debug et que tu regardes quel objet est null, si c'est PROS_CL, PROS_CL.Aj_prospect_bindingSource, PROS_CL.Aj_prospect_bindingSource.DataSource, ou autre...
  • Commenter cette solution |
Score
0
òh
òi
|
Meilleure réponse sélectionnée par TSniper.
  • Commenter cette réponse |
Score
0
òh
òi
|
  1. ////////////////Binding//////////
  2.  
  3. public Ajout_prospect(SqlConnection con, Prospection_CL PROS_CL, ArrayList ID_PR_ajouter)
  4. {
  5. InitializeComponent();
  6. this.con = con;
  7. this.PROS_CL = PROS_CL;
  8. this.ID_PR_ajouter = ID_PR_ajouter;
  9. }
  10.  
  11. private void Ajout_prospect_Load(object sender, EventArgs e)
  12. {
  13. dataGridView_AJ_Prospect.AutoGenerateColumns = false;
  14. da_aj_prospect = new SqlDataAdapter("select * from Prospect", con);
  15. da_aj_prospect.Fill(dt_aj_prospect);
  16. Aj_prospect_bindingSource.DataSource=dt_aj_prospect;
  17. dataGridView_AJ_Prospect.DataSource = Aj_prospect_bindingSource;
  18. new SqlCommandBuilder(da_aj_prospect);
  19.  
  20. }
  21. ///////////////////////////////////////
  22.  
  23. private void bouton_Valider_Click(object sender, EventArgs e)
  24. {
  25. //PROS_CL.Aj_prospect_bindingSource.AddNew();
  26.  
  27. DataRowView drv_ajout = (DataRowView)this.Aj_prospect_bindingSource.Current;
  28.  
  29. [color=#000cff]Ligne51[/color]((DataTable)PROS_CL.Aj_prospect_bindingSource.DataSource).Rows.Add(drv_ajout.Row.ItemArray);
  30. ((DataTable)this.Aj_prospect_bindingSource.DataSource).Rows.Remove(drv_ajout.Row);
  31. // Aj_prospect_bindingSource.RemoveCurrent();
  32. }
  • Commenter cette réponse |
Score
0
òh
òi
, Modérateur |
Avec l'erreur fournie, c'est pas facile de dire où est le soucis.
Ca indique qu'il y a un des objets utilisé qui est null.

1) Quelle ligne correspond à la ligne 51 ?
2) Est-ce que tu pourrais montrer le code où tu bindes tes data sources ?
3) Pour avoir cette erreur, ça serait un de ces objets qui est null:
- this.Aj_prospect_bindingSource : si tu n'as pas défini ta binding source
- this.Aj_prospect_bindingSource.Current : si aucune ligne n'est sélectionnée actuellement
- PROS_CL : si tu n'as pas initialisé ta Prospection
- PROS_CL.Aj_prospect_bindingSource : si tu n'as pas défini ta binding source pour la prospection
- PROS_CL.Aj_prospect_bindingSource.DataSource : si tu n'as pas de data source définie dans la binding source de ta prospection
  • Commenter cette réponse |
Score
0
òh
òi
|
J'ai fait des changement dans mon code mais ca ne marche pas encore:

Déclaration
  1. SqlConnection con;
  2. MDIParent MDI;
  3. DataTable dt_aj_prospect=new DataTable();
  4. SqlDataAdapter da_aj_prospect;
  5. Prospection_CL PROS_CL;
  6. ArrayList ID_PR_ajouter;


Code du Bouton
  1. private void bouton_Valider_Click(object sender, EventArgs e)
  2. {
  3. //PROS_CL.Aj_prospect_bindingSource.AddNew();
  4.  
  5. DataRowView drv_ajout = (DataRowView)this.Aj_prospect_bindingSource.Current;
  6.  
  7. ((DataTable)PROS_CL.Aj_prospect_bindingSource.DataSource).Rows.Add(drv_ajout.Row.ItemArray);
  8. ((DataTable)this.Aj_prospect_bindingSource.DataSource).Rows.Remove(drv_ajout.Row);
  9. // Aj_prospect_bindingSource.RemoveCurrent();
  10. }

ERREUR:
************** Texte de l'exception **************
System.NullReferenceException: La référence d'objet n'est pas définie à une instance d'un objet.
à ProsperCRM.Ajout_prospect.bouton_Valider_Click(Object sender, EventArgs e) dans C:\Users\Mohamed Mohamed\Prosper\Prospection\Ajout_prospect.cs:ligne 51
à System.Windows.Forms.Control.OnClick(EventArgs e)
à DevExpress.XtraEditors.BaseButton.OnClick(EventArgs e)
à DevExpress.XtraEditors.BaseButton.OnMouseUp(MouseEventArgs e)
à System.Windows.Forms.Control.WmMouseUp(Message& m, MouseButtons button, Int32 clicks)
à System.Windows.Forms.Control.WndProc(Message& m)
à DevExpress.Utils.Controls.ControlBase.WndProc(Message& m)
à System.Windows.Forms.Control.ControlNativeWindow.OnMessage(Message& m)
à System.Windows.Forms.Control.ControlNativeWindow.WndProc(Message& m)
à System.Windows.Forms.NativeWindow.Callback(IntPtr hWnd, Int32 msg, IntPtr wparam, IntPtr lparam)


Je vous remerci infiniment Mr Omar pour votre aide :) 
  • Commenter cette réponse |
Score
0
òh
òi
, Modérateur |
Comme ça, ça devrait être bon (à condition que tes deux Binding Sources aient des DataTable bindées et que les colonnes soient identiques et dans le même ordre) :
  1. private void bouton_Valider_Click(object sender, EventArgs e)
  2. {
  3. DataRowView drv_ajout = (DataRowView)this.Aj_client_bindingSource.Current;
  4. ((DataTable)client_CL.Aj_client_bindingSource.DataSource).Rows.Add(drv_ajout.Row.ItemArray);
  5. ((DataTable)this.Aj_client_bindingSource.DataSource).Rows.Remove(drv_ajout.Row);
  6. }
  • Commenter cette réponse |
Score
0
òh
òi
|
L'erreur est la suivante:
System.InvalidCastException: Impossible d'effectuer un cast d'un objet de type 'System.Object' en type 'System.Data.DataRowView'.

oui c'est la même dataGrid et les champs de données l'une est initialement vide, donc je veut les remplir à partir de l'autre
  • Commenter cette réponse |
Score
0
òh
òi
, Modérateur |
Donc, si je comprend bien, tu veux déplacer une ligne d'une DataGridView à une autre ?

Tu as seulement une colonne ID_cl ? Et est-ce que toutes tes colonnes sont identiques entre les deux DataGridView ?

Et enfin, ton code que tu as donné, il fonctionne là ? Est-ce que tu as une erreur ?
  • Commenter cette réponse |
Score
0
òh
òi
|
Salut merci beaucoup pour ton aide,

partie déclaration:
  1. DataTable dt_aj_client=new DataTable();
  2. SqlDataAdapter da_aj_client;
  3. clientele client_CL;
  4. ArrayList ID_cl_ajouter;
  5.  
  6.  
  7. /////////////// apres que je selectionne la ligne à ajouter je clice sur le bouton valider son code est le suivant ////////////
  8.  
  9. private void bouton_Valider_Click(object sender, EventArgs e)
  10. {
  11. client_CL.Aj_client_bindingSource.AddNew();
  12. DataRowView drv_client = (DataRowView)client_CL.Aj_client_bindingSource.Current;
  13. DataRowView drv_ajout = (DataRowView)this.Aj_client_bindingSource.Current;
  14. drv_client["ID_cl"] = drv_ajout["ID_cl"];
  15. client_CL.Aj_client_bindingSource.EndEdit();
  16. Aj_client_bindingSource.RemoveCurrent();
  17. }
  • Commenter cette réponse |
Score
0
òh
òi
, Modérateur |
Salut,

D'où viennent les données de ta DataGridView ?

En fonction du conteneur (List, ArrayList, DataTable...), on pourra te donner une solution pour filtrer et les remettre dans une DataGridView.

Mais j'imagine que tu as certainement une base de données et que tu bind les données dans ta DataGridView, et que donc, faudra plutôt filtrer au niveau de la couche d'accès aux données.
  • Commenter cette réponse |

Ce n'est pas ce que vous cherchiez ?

Tom's guide dans le monde
  • Allemagne
  • Italie
  • Irlande
  • Royaume Uni
  • Etats Unis
Suivre Tom's Guide
Inscrivez-vous à la Newsletter
  • ajouter à twitter
  • ajouter à facebook
  • ajouter un flux RSS