Partage
  • Partager sur Facebook
  • Partager sur Twitter

Récuperation des données dans un DATAGRID

    14 juin 2011 à 11:08:55

    Bonjour
    je suis en cour de réalisation de mon projet ( distributeur de boissons ) de fin d’études je vous explique :
    en faite je m occupe de la partie de la base de données et IHM , je dois créer un programme qui permet l'ajout , la modif et la suppression d'un users et d'une machine , jusqu au la ts se passe bien
    on passe au problème principale : en fait mon collègue qui s'occupe de la gestions des produits et des machines m’envoie un fichier CSV avc ts les produits dans chaque distributeur, ce que je dois faire c'est récupérer le CSV et L'afficher dans mon datagrid ts marche nickel maintenant .
    on passe au problème : mon fichier CSV comporte 3 champs : Nom , Type , Quantité ce que je voudrai faire c'est afficher un POP UP qd le champs quantité comporte une valeur inférieure a 50
    voila mon code
    using System;
    using System.Collections;
    using System.IO;
    using System.Text;
    using System.Windows.Forms;
     
    namespace Projets_Machine_2011
    {
        public partial class csv : Form
        {
            public csv()
            {
                InitializeComponent();
            }
     
            private void Afficher_Click(object sender, EventArgs e)
            {
                dataGridView1.Columns.Add("Nom", "Nom");
                dataGridView1.Columns.Add("type", "type");
                dataGridView1.Columns.Add("quantité", "quantité");
     
                CSV csvFile = new CSV("produits.csv");
                ArrayList produits = csvFile.Getproduits();
     
                for (int i = 0; i < produits.Count; i++)
                {
                    object[] record = (object[])produits[i];
                    dataGridView1.Rows.Add(record);
                }
            }
     
            private void dataGridView1_CellContentClick(object sender, DataGridViewCellEventArgs e)
            {
     
            }
            public class CSV
            {
                private StreamReader reader;
                private ArrayList list_produits;
                private ArrayList _record;
     
                public CSV(string filename)
                {
                    reader = new StreamReader(filename);
                }
     
                public ArrayList Getproduits()
                {
                    list_produits = new ArrayList();
                    _record = new ArrayList();
     
                    string line = "";
     
                    while ((line = reader.ReadLine()) != null)
                    {
                        object[] record = line.Split(',');
                        list_produits.Add(record);
                    }
     
                    return list_produits;
                }
            }
        }
    }
    
    • Partager sur Facebook
    • Partager sur Twitter
    Anonyme
      14 juin 2011 à 11:18:06

      Ton ArrayList que tu récupères via ta méthode Getproduits() contient des tableaux d'object, dont le troisième membre est la quantité.
      Unboxe-le en int avec as et compare-le à 50.


      Mais franchement, t'as intérêt à recoder tout ça en utilisant une classe Produit (ou Product, en anglais...), des List<Produit> et pas des ArrayList, des noms de classes descriptifs (et si possibles pas imbriquées les classes)...
      • Partager sur Facebook
      • Partager sur Twitter
        14 juin 2011 à 11:25:05

        sinn j'ai essayée autrement , t'aurai pas une solution je dois donner le projet cette semaine
        using System;
        using System.Collections.Generic;
        using System.ComponentModel;
        using System.Data;
        using System.Drawing;
        using System.Linq;
        using System.Text;
        using System.Windows.Forms;
        using System.IO;
        using System.Data.SqlClient;
        using System.Windows.Documents;
        using System.Windows.Controls;
        using ADOX;
        namespace Import
        {
            public partial class Form1 : Form
            {
                public Form1()
                {
                    InitializeComponent();
                }
        
                public static string SelectedTable = string.Empty;
        
                private void button1_Click_1(object sender, EventArgs e)
                {
                    OpenFileDialog fdlg = new OpenFileDialog();
                    fdlg.Title = "Select file";
                    fdlg.InitialDirectory = @"c:\";
                    fdlg.FileName = txtFileName.Text;
                    fdlg.Filter = "Text and CSV Files(*.txt, *.csv)|*.txt;*.csv|Text Files(*.txt)|*.txt|CSV Files(*.csv)|*.csv|All Files(*.*)|*.*";
                    fdlg.FilterIndex = 1;
                    fdlg.RestoreDirectory = true;
                    if (fdlg.ShowDialog() == DialogResult.OK)
                    {
                        txtFileName.Text = fdlg.FileName;
                        Import();
                        Application.DoEvents();
                    }
                }
        
                private void Import()
                {
                    if (txtFileName.Text.Trim() != string.Empty)
                    {
                        try
                        {
                            DataTable dt = GetDataTable(txtFileName.Text);
                            dataGridView1.DataSource = dt.DefaultView;
        
                        }
                        catch (Exception ex)
                        {
                            MessageBox.Show(ex.Message.ToString());
                        }
                    }
                }
        
                public static DataTable GetDataTable(string strFileName)
                {
                    ADODB.Connection oConn = new ADODB.Connection();
                    oConn.Open("Provider=Microsoft.Jet.OleDb.4.0; Data Source = " + System.IO.Path.GetDirectoryName(strFileName) + "; Extended Properties = \"Text;HDR=YES;FMT=Delimited\";", "", "", 0);
                    string strQuery = "SELECT * FROM [" + System.IO.Path.GetFileName(strFileName) + "]";
                    ADODB.Recordset rs = new ADODB.Recordset();
                    System.Data.OleDb.OleDbDataAdapter adapter = new System.Data.OleDb.OleDbDataAdapter();
                    DataTable dt = new DataTable();
                    rs.Open(strQuery, "Provider=Microsoft.Jet.OleDb.4.0; Data Source = " + System.IO.Path.GetDirectoryName(strFileName) + "; Extended Properties = \"Text;HDR=YES;FMT=Delimited\";",
                        ADODB.CursorTypeEnum.adOpenForwardOnly, ADODB.LockTypeEnum.adLockReadOnly, 1);
                    adapter.Fill(dt, rs);
                    return dt;
                }
        
                private void Form1_Load(object sender, EventArgs e)
                {
        
                }
            }
        }
        
        • Partager sur Facebook
        • Partager sur Twitter
        Anonyme
          14 juin 2011 à 12:02:26

          Tu comprends ce que fait le bout de code que tu as copié/collé au moins ?
          • Partager sur Facebook
          • Partager sur Twitter
            14 juin 2011 à 13:07:38

            Oui Oui pour la récuperation des données que contient le fichier CSV
            • Partager sur Facebook
            • Partager sur Twitter

            Récuperation des données dans un DATAGRID

            × Après avoir cliqué sur "Répondre" vous serez invité à vous connecter pour que votre message soit publié.
            × Attention, ce sujet est très ancien. Le déterrer n'est pas forcément approprié. Nous te conseillons de créer un nouveau sujet pour poser ta question.
            • Editeur
            • Markdown