none
Base de données en c# (Access 2000) RRS feed

  • Question

  • Code Snippet

     

    using System;

    using System.Collections.Generic;

    using System.ComponentModel;

    using System.Data;

    using System.Data.OleDb;

    using System.Drawing;

    using System.Linq;

    using System.Text;

    using System.Windows.Forms;

     

    namespace Test4

    {

       public partial class Form1 : Form

       {

         OleDbConnection conn;

         OleDbCommand cmd;

         OleDbDataAdapter dta;

         DataSet dts;

         DataRow row;

         DataTable dtt = new DataTable();

         int RowNumber;

     

         public Form1()

    {

      InitializeComponent();

    }

    private void Form1_Load(object sender, EventArgs e)

    {

      LoadData();

    }

    private void LoadData()

    {

    conn = new OleDbConnection("Provider=Microsoft.jet.oledb.4.0;data source=Contacts.mdb");

    cmd = new OleDbCommand("SELECT * FROM Contacts", conn);

    conn.Open();

    dta = new OleDbDataAdapter(cmd);

    dts = new DataSet("Contacts");

    dta.Fill(dts, "Contacts");

    row = dts.Tables[0].Rows[0];

    iDTextBox.Text = row[0, DataRowVersion.Current].ToString();

    nOMTextBox.Text = row[1, DataRowVersion.Current].ToString();

    pRENOMTextBox.Text = row[2, DataRowVersion.Current].ToString();

    tELEPHONETextBox.Text =row[3, DataRowVersion.Current].ToString();

    eMAILTextBox.Text = row[4, DataRowVersion.Current].ToString();

    conn.Close();

    conn = null;

    }

     

    // ******************************************************//

    private void cmdFirst_Click(object sender, EventArgs e)

    {

     

    }

     

    private void cmdPrevius_Click(object sender, EventArgs e)

    {

     

    }

    private void cmdNext_Click(object sender, EventArgs e)

    {

     

    }

    private void cmdLast_Click(object sender, EventArgs e)

    {

     

    }

    // ******************************************************//

      }

    }

     

     

    Voilà J'utilise ceci pour mon projet

    Jusqu'a maintenant ca va Mon Problême est le suivant

    J'ai tout essayer sur le web (les truc pour (moveFirst et autre)

    Mais voila que ca fonctionne jamais y toujour quelques chose qui ne va pas

     

    SVP. On peut maider ici?

    Merci Beaucoup    

    samedi 14 juin 2008 21:33

Réponses

  • Bonjour,

     

    pouvez-vous préciser ce qui ne fonctionne pas et ce que vous essayez de réaliser ?

     

    dimanche 15 juin 2008 12:44
  • Bien sure!

     

    je ne trouve pas la bonne demarche a suivre pour

    pour faire fonctionner le MoveFirst, MovePrevius, MoveNext, MoveLast

    A chaque fois que j'ai essayer Rien ne se passe

    Pourtant c'etait si facille a faire en vb.net

    Mais ne semble pas vouloir s'utiliser de la meme facon en c#2008 express

    meme en traduisant du vb au c# trop de variante a modifier et je trouve jamais les quelles

     

    J espere que vous comprenez mieux ce que veut

     

    Merci 

    dimanche 15 juin 2008 14:49
  • En C#, il s'agit de :

     

    MoveFirst :

    http://msdn.microsoft.com/fr-fr/library/system.windows.forms.bindingsource.movefirst(VS.85).aspx

     

    MoveLast : 

    http://msdn.microsoft.com/fr-fr/library/system.windows.forms.bindingsource.movelast(VS.85).aspx

     

    MoveNext : 

    http://msdn.microsoft.com/fr-fr/library/system.windows.forms.bindingsource.movenext(VS.85).aspx

     

    et MovePrevious :

    http://msdn.microsoft.com/fr-fr/library/system.windows.forms.bindingsource.moveprevious(VS.85).aspx

     

    Dans le premier lien, un exemple en C# est proposé pour les utiliser, pour cela il faut ajouter l'espace de noms System.Drawing.Drawing2D à votre projet et utiliser un BindingSource.

    dimanche 15 juin 2008 18:14
  •  

    Si J'ai compris ce quil font cela serait inci

     

    Code Snippet

    using System;

    using System.Collections.Generic;

    using System.ComponentModel;

    using System.Data;

    using System.Data.OleDb;

    using System.Drawing;

    using System.Linq;

    using System.Text;

    using System.Windows.Forms;

    using System.Drawing.Drawing2D;

     

    namespace Test8

    {

    public partial class Form1 : Form

    {

    OleDbConnection conn;

    OleDbCommand cmd;

    OleDbDataAdapter dta;

    DataSet dts;

    DataRow row;

    DataTable dtt = new DataTable();

    public Form1()

    {

    InitializeComponent();

    }

    private void Form1_Load(object sender, EventArgs e)

    {

    LoadData();

    }

    private void LoadData()

    {

    conn = new OleDbConnection("Provider=Microsoft.jet.oledb.4.0;data source=Contacts.mdb");

    cmd = new OleDbCommand("SELECT * FROM Contacts", conn);

    conn.Open();

    dta = new OleDbDataAdapter(cmd);

    dts = new DataSet("Contacts");

    dta.Fill(dts, "Contacts");

    row = dts.Tables[0].Rows[0];

    iDTextBox.Text = row[0, DataRowVersion.Current].ToString();

    nOMTextBox.Text = row[1, DataRowVersion.Current].ToString();

    pRENOMTextBox.Text = row[2, DataRowVersion.Current].ToString();

    tELEPHONETextBox.Text = row[3, DataRowVersion.Current].ToString();

    eMAILTextBox.Text = row[4, DataRowVersion.Current].ToString();

    conn.Close();

    conn = null;

    }

     

     

    private void cmdFirst_Click(object sender, EventArgs e)

    {

    if (contactsBindingSource1.Position + 1 > contactsBindingSource1.Count)

    {

    contactsBindingSource1.MovePrevious();

    }

    else

    {

    contactsBindingSource1.MoveFirst();

    this.Invalidate();

    }

    }

    private void cmdPrevius_Click(object sender, EventArgs e)

    {

    if (contactsBindingSource1.Position + 1 > contactsBindingSource1.Count)

    {

    contactsBindingSource1.MovePrevious();

    }

    else

    {

    contactsBindingSource1.MoveFirst();

    this.Invalidate();

    }

    }

    private void cmdNext_Click(object sender, EventArgs e)

    {

    if (contactsBindingSource1.Position + 1 < contactsBindingSource1.Count)

    {

    contactsBindingSource1.MoveNext();

    }

    else

    {

    contactsBindingSource1.MoveFirst();

    this.Invalidate();

    }

    }

    private void cmdLast_Click(object sender, EventArgs e)

    {

    if (contactsBindingSource1.Position + 1 < contactsBindingSource1.Count )

    {

    contactsBindingSource1.MoveNext();

    }

    else

    {

    contactsBindingSource1.MoveFirst();

    this.Invalidate();

    }

    }

     

     

    Mais ca fonctionne pas

     

    on peut me dire l erreur ici svp

    dimanche 15 juin 2008 19:53
  • Pouvez-vous copier/coller le message d'erreur que vous obtenez ?

     

    dimanche 15 juin 2008 21:18
  •  

    Non justement  rien ne se passe pas un message rien

     

     

    dimanche 15 juin 2008 22:22
  • Bonjour Daniel,

     

    Il n'y a pas de message d'erreur car il n'y a effectivement pas d'erreur dans votre code.

     

    lorsque vous écrivez :

     

    Code Snippet

    nOMTextBox.Text = row[1, DataRowVersion.Current].ToString();

    pRENOMTextBox.Text = row[2, DataRowVersion.Current].ToString();

     

     

    Vous ne "databindez" pas vos textbox à votre datasource. De ce fait lorsque vous utilisez .Position++ ou movenext() cela n'a effectivement aucun effet.

     

    Vous avez votre bindingsource qui a pour source votre dataset et pour membre la datatable contact :

     

    Code Snippet

    this.bsContact.DataMember = "Customers";

    this.bsContact.DataSource = this.dsContact1;

     

     

    Pour finir vous devez lier le bindingsource à vos textbox :

    Code Snippet

     

    this.txtNom.DataBindings.Add(new System.Windows.Forms.Binding("Text", this.bsContact, "ContactName", true));

     

     

    Maintenant que vous avez lié vos textbox à votre bindingsource, vous pouvez profiter de la méthode MoveNext()

     

    Code Snippet

    bsContact.MoveNext();

     

     

     

    Amicalement,

     

     

    jeudi 19 juin 2008 09:58

Toutes les réponses

  • Bonjour,

     

    pouvez-vous préciser ce qui ne fonctionne pas et ce que vous essayez de réaliser ?

     

    dimanche 15 juin 2008 12:44
  • Bien sure!

     

    je ne trouve pas la bonne demarche a suivre pour

    pour faire fonctionner le MoveFirst, MovePrevius, MoveNext, MoveLast

    A chaque fois que j'ai essayer Rien ne se passe

    Pourtant c'etait si facille a faire en vb.net

    Mais ne semble pas vouloir s'utiliser de la meme facon en c#2008 express

    meme en traduisant du vb au c# trop de variante a modifier et je trouve jamais les quelles

     

    J espere que vous comprenez mieux ce que veut

     

    Merci 

    dimanche 15 juin 2008 14:49
  • En C#, il s'agit de :

     

    MoveFirst :

    http://msdn.microsoft.com/fr-fr/library/system.windows.forms.bindingsource.movefirst(VS.85).aspx

     

    MoveLast : 

    http://msdn.microsoft.com/fr-fr/library/system.windows.forms.bindingsource.movelast(VS.85).aspx

     

    MoveNext : 

    http://msdn.microsoft.com/fr-fr/library/system.windows.forms.bindingsource.movenext(VS.85).aspx

     

    et MovePrevious :

    http://msdn.microsoft.com/fr-fr/library/system.windows.forms.bindingsource.moveprevious(VS.85).aspx

     

    Dans le premier lien, un exemple en C# est proposé pour les utiliser, pour cela il faut ajouter l'espace de noms System.Drawing.Drawing2D à votre projet et utiliser un BindingSource.

    dimanche 15 juin 2008 18:14
  •  

    Si J'ai compris ce quil font cela serait inci

     

    Code Snippet

    using System;

    using System.Collections.Generic;

    using System.ComponentModel;

    using System.Data;

    using System.Data.OleDb;

    using System.Drawing;

    using System.Linq;

    using System.Text;

    using System.Windows.Forms;

    using System.Drawing.Drawing2D;

     

    namespace Test8

    {

    public partial class Form1 : Form

    {

    OleDbConnection conn;

    OleDbCommand cmd;

    OleDbDataAdapter dta;

    DataSet dts;

    DataRow row;

    DataTable dtt = new DataTable();

    public Form1()

    {

    InitializeComponent();

    }

    private void Form1_Load(object sender, EventArgs e)

    {

    LoadData();

    }

    private void LoadData()

    {

    conn = new OleDbConnection("Provider=Microsoft.jet.oledb.4.0;data source=Contacts.mdb");

    cmd = new OleDbCommand("SELECT * FROM Contacts", conn);

    conn.Open();

    dta = new OleDbDataAdapter(cmd);

    dts = new DataSet("Contacts");

    dta.Fill(dts, "Contacts");

    row = dts.Tables[0].Rows[0];

    iDTextBox.Text = row[0, DataRowVersion.Current].ToString();

    nOMTextBox.Text = row[1, DataRowVersion.Current].ToString();

    pRENOMTextBox.Text = row[2, DataRowVersion.Current].ToString();

    tELEPHONETextBox.Text = row[3, DataRowVersion.Current].ToString();

    eMAILTextBox.Text = row[4, DataRowVersion.Current].ToString();

    conn.Close();

    conn = null;

    }

     

     

    private void cmdFirst_Click(object sender, EventArgs e)

    {

    if (contactsBindingSource1.Position + 1 > contactsBindingSource1.Count)

    {

    contactsBindingSource1.MovePrevious();

    }

    else

    {

    contactsBindingSource1.MoveFirst();

    this.Invalidate();

    }

    }

    private void cmdPrevius_Click(object sender, EventArgs e)

    {

    if (contactsBindingSource1.Position + 1 > contactsBindingSource1.Count)

    {

    contactsBindingSource1.MovePrevious();

    }

    else

    {

    contactsBindingSource1.MoveFirst();

    this.Invalidate();

    }

    }

    private void cmdNext_Click(object sender, EventArgs e)

    {

    if (contactsBindingSource1.Position + 1 < contactsBindingSource1.Count)

    {

    contactsBindingSource1.MoveNext();

    }

    else

    {

    contactsBindingSource1.MoveFirst();

    this.Invalidate();

    }

    }

    private void cmdLast_Click(object sender, EventArgs e)

    {

    if (contactsBindingSource1.Position + 1 < contactsBindingSource1.Count )

    {

    contactsBindingSource1.MoveNext();

    }

    else

    {

    contactsBindingSource1.MoveFirst();

    this.Invalidate();

    }

    }

     

     

    Mais ca fonctionne pas

     

    on peut me dire l erreur ici svp

    dimanche 15 juin 2008 19:53
  • Pouvez-vous copier/coller le message d'erreur que vous obtenez ?

     

    dimanche 15 juin 2008 21:18
  •  

    Non justement  rien ne se passe pas un message rien

     

     

    dimanche 15 juin 2008 22:22
  • Bonjour Daniel,

     

    Il n'y a pas de message d'erreur car il n'y a effectivement pas d'erreur dans votre code.

     

    lorsque vous écrivez :

     

    Code Snippet

    nOMTextBox.Text = row[1, DataRowVersion.Current].ToString();

    pRENOMTextBox.Text = row[2, DataRowVersion.Current].ToString();

     

     

    Vous ne "databindez" pas vos textbox à votre datasource. De ce fait lorsque vous utilisez .Position++ ou movenext() cela n'a effectivement aucun effet.

     

    Vous avez votre bindingsource qui a pour source votre dataset et pour membre la datatable contact :

     

    Code Snippet

    this.bsContact.DataMember = "Customers";

    this.bsContact.DataSource = this.dsContact1;

     

     

    Pour finir vous devez lier le bindingsource à vos textbox :

    Code Snippet

     

    this.txtNom.DataBindings.Add(new System.Windows.Forms.Binding("Text", this.bsContact, "ContactName", true));

     

     

    Maintenant que vous avez lié vos textbox à votre bindingsource, vous pouvez profiter de la méthode MoveNext()

     

    Code Snippet

    bsContact.MoveNext();

     

     

     

    Amicalement,

     

     

    jeudi 19 juin 2008 09:58
  •  

    Merci beaucoup pour cette reponse rapide

    je tente le coup et aplus

     

    Merci encore

    vendredi 20 juin 2008 20:38