DataGridView in een column zoeken

  • Onderwerp starter Onderwerp starter Zaro
  • Startdatum Startdatum
Status
Niet open voor verdere reacties.

Zaro

Gebruiker
Lid geworden
28 feb 2010
Berichten
33
Hey, ik ben nieuw en heb een vraagje!

Ik heb een MySQL database ingeladen in een DataGridView, en nu wil ik uit 1 specifieke Column iets zoeken.. Maar hoe doe ik dat?

Ik zou zoiets zeggen:
Code:
if (dataGridView1.Columnheader.Text == "test")
{
   dataGridView1.Enter();
   if(dataGridView1.Rows.Contains("Henk") = true)
   {
      MessageBox.Show("Henk gevonden!");
   }
}

Alleen het werkt niet.. :confused:
Hopelijk is het een beetje duidelijk, ik kan het anders niet omschrijven..

Alvast bedankt,
ZaroX.
 
Nee, sorry! Toch heel erg bedankt ;)

Misschien helpt dit meer:

snelgemaakt.png

Legenda:
1=In deze rij moet hij zoeken, dus niet in de id rij.. (wat hij op dit moment doet :S Tenminste, dat denk ik..)
2=Hij zoekt DataX, en wanneer hij die gevonden heeft:
3=Springt hij naar de volgende Column en leest die cell uit, in dit geval dus: 'Harrie.'
Let op: het is even snel gemaakt :']

Hopelijk is het duidelijker..

Groetjes,
 
Ik gebruik zelf ook een DataGridView en heb de zelfde situatie als jou gehad, ik heb het als volgt opgelost:

Code:
strFilter = "Column2 LIKE '%Harrie%'";

datatable = ds.Tables[0]; //Dit is je bestaande datatable
DataView dtv = new DataView(dtb);

dtv.RowFilter = strFilter;

dataGridView1.DataSource = dtv;

Hopelijk werkt dit?

Ik heb dit alles in een Textbox Textchanged event geplaatst.
 
Nee, sorry voor de late reactie, maar het is nog steeds niet opgelost :(
 
zoeken in SQL tabel

als ik het goed begrijp moet je eerst de naam van je kolom hebben.

Om de naam te weten van de eerste kolom gebruik je onderstaande code
Code:
string kolomNaam=ds.Tables["gekozenNaamVoorJeTabel"].Columns[0].ColumnName.ToString();

daarna moet je weten hoeveel rijen je hebt in je kolom vb:aantal
je kan de waarde van een veld in een string variable plaatsen vb:naam
en dan kan je elke rij in die kolom (in het vb 2de kolom) doorlopen
Code:
DataRow rij=ds.Tables["gekozenNaamVoorJeTabel"].Rows[0];
            int aantal = ds.Tables["gekozenNaamVoorJeTabel"].Rows.Count;
            string naam = rij.ItemArray.GetValue(1).ToString();

            
            for (int i = 0; i < aantal; i++)
            {
                rij = ds.Tables["gekozenNaamVoorJeTabel"].Rows[i];
                naam = rij.ItemArray.GetValue(1).ToString();
                if (naam == "Henk")
                {
                    MessageBox.Show("Henk Gevonden");
                    break;
                    
                }
                else continue;


            }

in jouw geval moet je eerst DataX zoeken (kan je op dezelfde manier als hierboven
als hij aan die voorwaarde voldoet moet hij 1 kolom opschuiven.



greets
 
Laatst bewerkt:
als ik het goed begrijp moet je eerst de naam van je kolom hebben.
Dat klopt!

De code ziet er ook goed uit, ik wou hem zojuist proberen, maar ik vraag je af waar de 'ds' voor staat bij jou.. Zou je dat even willen vermelden?

Alvast bedankt.
Zaro. :)
 
Dat klopt!

De code ziet er ook goed uit, ik wou hem zojuist proberen, maar ik vraag je af waar de 'ds' voor staat bij jou.. Zou je dat even willen vermelden?

Alvast bedankt.
Zaro. :)

Dit is voor de DataSet
Vertegenwoordigt een volledige verzameling tabellen, relaties en constraints (beperkingen). De namespaces System.Data.OleDb en System.Data.SqlClient hebben dit object van ADO.Net gemeen, waardoor het een kerncomponent van ADO.Net is.

Belangrijk:
een DataSet houdt enkel data vast!

een dataset maak je aan met
Code:
DataSet mijnDatasetje = new DataSet();
of in het geval van de code bovenaan
Code:
DataSet ds = new DataSet()

groeten
 
Even uit mijn hoofd kon je bepaalde waardes in een datatable opbzoeken via indexers:

DataTable.Rows.Columns.value


Verder kun je bepaalde event handlers als CellValidating en RowValidating gebruiken om met een geselecteerde cell te werken.
De eventArgs bevatten een property Currentcell. welke verwijst naar de huidige cell.

Je hebt ook de Find() methode bij een DataTable gebruiken. Ik geloof dat je een query mee kunt geven. Deze methode geeft de index van de gevonden row terug. Van hier uit kun je dan verder.
 
Laatst bewerkt:
Bedankt allemaal! :thumb:

Ik heb het nu zo:
Code:
SqlCommand command = new SqlCommand("SELECT password FROM [users] WHERE username='" + username + "", connection);
En ik hoop dat dit werkt :p (Ik kan het alleen nog niet testen omdat de host geen verbindingen van buitenaf toestaat :rolleyes:)
 
Laatst bewerkt:
Bedankt allemaal! :thumb:

Ik heb het nu zo:
Code:
SqlCommand command = new SqlCommand("SELECT password FROM [users] WHERE username='" + username + "", connection);
En ik hoop dat dit werkt :p (Ik kan het alleen nog niet testen omdat de host geen verbindingen van buitenaf toestaat :rolleyes:)

Als dit voor een serieuse applicatie is, kun je op de plek van + username + beter een sqlparameter neerzetten. Succes ermee!
 
Status
Niet open voor verdere reacties.
Terug
Bovenaan Onderaan