Je suis en train d'essayer de créer un logiciel contenant des informations manuellement ajoutées par l'utilisateur à l'intérieur Je n'utilise pas MySQL ou quoi que ce soit qui est associé à la base de données. p> i Utilisez un Que se passe-t-il lorsque je saisi des données à l'intérieur de la zone de texte code> Il réinitialise Le im un débutant dans Visual Studio et en C #. J'ai des connaissances de base en c. P> datagridtextcell code>.
Le but est de filtrer le code> datagridview code> avec un
textbox code>. Le logiciel doit filtrer les informations de texte et afficher les lignes contenant les informations de texte relatives à la zone de texte code>.
Textbox code> avec nom
textbox1 code> et en utilisant son
TEXTCHANGED code> événement.
L'utilisateur écrit des données à l'intérieur de 3 tables appelées IndexView, Kategorieview et InhalTeview Intérieur
DataGridView1 CODE>. P>
dataGridView code> à zéro contenu. p>
3 Réponses :
Selon le Documentation Vous devez appeler SupprimerFilter premier. P>
... En outre, la valeur du filtre persistera lorsque la source de données change. Pour arrêter de filtrer la DataSource, appelez la méthode SupprimerFilter. Em> p>
La raison peut être que la source de données du DataGridView est toujours null code>. Vous pouvez essayer de définir un
dataTable code> pour stocker les données, puis l'utiliser comme référence
datasource code> de
liaison de liaison code>.
private void textBox1_TextChanged(object sender, EventArgs e)
{
// Define a datatable
DataTable dt = new DataTable("tablename");
DataRow dr;
dt.Columns.Add("iView", System.Type.GetType("System.String"));
dt.Columns.Add("kView", System.Type.GetType("System.String"));
dt.Columns.Add("cView", System.Type.GetType("System.String"));
for (int i = 0; i < this.dataGridView1.Rows.Count -1; i++)
{
dr = dt.NewRow();
for (int j = 0; j < 3; j++)
{
dr[j] = this.dataGridView1.Rows[i].Cells[j].Value.ToString();
}
dt.Rows.Add(dr);
}
// Filter
BindingSource bs = new BindingSource();
bs.DataSource = dt;
bs.Filter = "iView like '%" + textBox1.Text + "%'";
bs.Filter = "kView like '%" + textBox1.Text + "%'";
bs.Filter = "cView like '%" + textBox1.Text + "%'";
// Reset the datagridview content
dataGridView1.Columns.Clear();
dataGridView1.DataSource = bs;
}
Merci M. Wang. Cela me aide beaucoup. Maintenant, je peux travailler à maintenir / restaurer les données d'origine.
Je n'ai pas composé de solution qui me satesfy moi. P>
alors glissé tout le projet dans une base de données locale. Là où beaucoup de tutoriels en ligne avec de nombreuses bonnes solutions. p>
J'ai appris des choses importantes et j'apprécie l'aide de tout le monde. P>
-Topic fermé - p>
Essayez quelque chose comme ceci, instau de l'utilisation des temps de filtre multipiles (DataGridView.dataSource comme DataTable) .defaultview.rowfilter = string.format ("indexView comme" {0}% 'ou kategorieview aime "% {1}%" ou inhalteview comme " % {2}% '", textebox1.text, textbox1.text, textbox1.text);
Quelle est votre source de données initiale? Où et comment stockez-vous les données d'origine?
Pourriez-vous s'il vous plaît Modifier votre message et ajouter le code? Il est illisible dans un commentaire
Bonjour @mong Zhu, Post est mis à jour. Bonjour les démocrates Merci pour les liens - je suis toujours en train de lire et d'essayer de déterminer où implémenter THR Supprimerfilter.