Meilleur auteur de réponses
Base de données en c# (Access 2000)

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 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
Réponses
-
-
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
-
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.
-
Si J'ai compris ce quil font cela serait inci
Code Snippetusing
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;}
{
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
-
-
-
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 SnippetnOMTextBox.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 Snippetthis.bsContact.DataMember = "Customers";
this.bsContact.DataSource = this.dsContact1;
Pour finir vous devez lier le bindingsource à vos textbox :
Code Snippetthis
.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 SnippetbsContact.MoveNext();
Amicalement,
Toutes les réponses
-
-
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
-
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.
-
Si J'ai compris ce quil font cela serait inci
Code Snippetusing
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;}
{
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
-
-
-
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 SnippetnOMTextBox.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 Snippetthis.bsContact.DataMember = "Customers";
this.bsContact.DataSource = this.dsContact1;
Pour finir vous devez lier le bindingsource à vos textbox :
Code Snippetthis
.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 SnippetbsContact.MoveNext();
Amicalement,
-