Primer u C#. Prva tri reda su globalna za celu formu. Kod učitavanja forme, pomoću data adaptera učitaš podatke iz baze u data set. Zatim napraviš objekat DataView. U događaju TextChanged samo pozivaš svojstvo RowFilter. Znači ne moraš svaki put uzimati podatke iz baze, što će verovatno imati efekta na brzinu, mana je naravno što ćeš celu tabelu imati u memoriji.
Code:
OleDbConnection konekcija = new OleDbConnection("Provider=Microsoft.Jet.OLEDB.4.0; Data Source=c:\\Database1.mdb");
DataSet ds = new DataSet();
DataView pogled;
public Form1()
{
InitializeComponent();
string upit = "SELECT * FROM Korisnik";
OleDbDataAdapter adapter = new OleDbDataAdapter(upit, konekcija);
adapter.Fill(ds);
pogled = new DataView(ds.Tables[0])
}
private void textBox1_TextChanged(object sender, EventArgs e)
{
pogled.RowFilter = "[Naziv firme] LIKE '" + textBox1.Text + "%'";
dataGridView1.DataSource = pogled;
}
I drugi način je sličan kao u prethodnom postu:
Code:
private void textBox1_TextChanged(object sender, EventArgs e)
{
OleDbConnection OleDbKonekcija = new OleDbConnection("Provider=Microsoft.Jet.OLEDB.4.0; Data Source=c:\\Database1.mdb");
OleDbCommand komanda = OleDbKonekcija.CreateCommand();
DataTable rezultat = new DataTable();
komanda.CommandText = "SELECT * FROM Korisnik WHERE [Naziv firme] LIKE '" + textBox1.Text + "%'";
try
{
komanda.Connection.Open();
OleDbDataReader citac = komanda.ExecuteReader();
rezultat.Load(citac); //ucitavanje podataka u DataTable
citac.Close();
dataGridView1.DataSource = rezultat;
}
catch
{
}
finally
{
komanda.Connection.Close(); //na kraju se zatvara konekcija
}
}
Uf, sad tek vidim da tebi treba prikaz u ListView, a ja korisio GridView
[Ovu poruku je menjao Laki123 dana 15.03.2010. u 23:40 GMT+1]