Usuário com melhor resposta
Preencher DataGridView

Pergunta
-
Galera gostaria de preencher o DataGridView com o que eu pesquisasse em uma textBox. Mas eu quero que a cada letra e filtre e reduza o numero de resultados automaticamente, sem apertar em nenhum botão. Não sei nem por onde começar me ajude.
Detalhe, DataGridView está conectado com o banco de dados do Oracle, já consegui carregar mas só quando clico no button "Pesquisar".
Por favor me ajudem!!!
Respostas
-
Bom dia WandersonLima,
Aqui há uma exemplo completo:
using System; using System.Data; using System.Windows.Forms; using System.Data.SqlClient; using System.Drawing; namespace WindowsFormsApplication1 { public partial class Form1 : Form { public Form1() { InitializeComponent(); } private void button1_Click(object sender, EventArgs e) { string connectionString = "Data Source=.;Initial Catalog=pubs;Integrated Security=True"; string sql = "SELECT * FROM Authors"; SqlConnection connection = new SqlConnection(connectionString); SqlDataAdapter dataadapter = new SqlDataAdapter(sql, connection); DataSet ds = new DataSet(); connection.Open(); dataadapter.Fill(ds, "Author_table"); connection.Close(); dataGridView1.DataSource = ds; dataGridView1.DataMember = "Author_table"; } private void button2_Click(object sender, EventArgs e) { printDocument1.Print(); } private void printDocument1_PrintPage(object sender, System.Drawing.Printing.PrintPageEventArgs e) { Bitmap bm = new Bitmap(this.dataGridView1.Width, this.dataGridView1.Height); dataGridView1.DrawToBitmap(bm, new Rectangle(0, 0, this.dataGridView1.Width, this.dataGridView1.Height)); e.Graphics.DrawImage(bm, 0, 0); } } }
Mais informações podem ser encontradas neste link.
- Marcado como Resposta Thales F Quintas sexta-feira, 17 de junho de 2016 18:00
Todas as Respostas
-
Olá WandersonLima,
segue alguns exemplos que encontrei que fazem essa filtro ao digitar:
(dataGridViewFields.DataSource as DataTable).DefaultView.RowFilter = string.Format("Field = '{0}'", textBoxFilter.Text);
string rowFilter = string.Format("[{0}] = '{1}'", columnName, filterValue); (myDataGridView.DataSource as DataTable).DefaultView.RowFilter = rowFilter;
Set
yourComboBox.AutoCompleteSource
toAutoCompleteSource.ListItems;
(se suayourComboBox.Items
já estiver com a tabela no banco preenchida)private void comboBox1_KeyPress(object sender, KeyPressEventArgs e) { char ch = e.KeyChar; string strToFind; // if first char if (lastChar == 0) strToFind = ch.ToString(); else strToFind = lastChar.ToString() + ch; // set first char lastChar = ch; // find first item that exactly like strToFind int idx = comboBox1.FindStringExact(strToFind); // if not found, find first item that start with strToFind if (idx == -1) idx = comboBox1.FindString(strToFind); if (idx == -1) return; comboBox1.SelectedIndex = idx; e.Handled = true; } void comboBox1_GotFocus(object sender, EventArgs e) { // remove last char before select new item lastChar = (char) 0; }
Também há mais algumas informações neste link.
Atenciosamente.
- Marcado como Resposta Thales F Quintas segunda-feira, 13 de junho de 2016 20:34
- Não Marcado como Resposta WandersonLima terça-feira, 14 de junho de 2016 20:13
-
Eu entendi mais ou menos meu código ficou assim:
(dgvDados.DataSource as DataTable).DefaultView.RowFilter = string.Format("Field = '{0}'", txtDescricao.Text); string rowFilter = string.Format("[{0}] = '{1}'", dgvDados.Columns[1], txtDescricao.Text); (dgvDados.DataSource as DataTable).DefaultView.RowFilter = rowFilter;
Mas não sei onde coloco ou se tenho que criar um método. Me ajuda ai.
-
Bom dia WandersonLima,
Aqui há uma exemplo completo:
using System; using System.Data; using System.Windows.Forms; using System.Data.SqlClient; using System.Drawing; namespace WindowsFormsApplication1 { public partial class Form1 : Form { public Form1() { InitializeComponent(); } private void button1_Click(object sender, EventArgs e) { string connectionString = "Data Source=.;Initial Catalog=pubs;Integrated Security=True"; string sql = "SELECT * FROM Authors"; SqlConnection connection = new SqlConnection(connectionString); SqlDataAdapter dataadapter = new SqlDataAdapter(sql, connection); DataSet ds = new DataSet(); connection.Open(); dataadapter.Fill(ds, "Author_table"); connection.Close(); dataGridView1.DataSource = ds; dataGridView1.DataMember = "Author_table"; } private void button2_Click(object sender, EventArgs e) { printDocument1.Print(); } private void printDocument1_PrintPage(object sender, System.Drawing.Printing.PrintPageEventArgs e) { Bitmap bm = new Bitmap(this.dataGridView1.Width, this.dataGridView1.Height); dataGridView1.DrawToBitmap(bm, new Rectangle(0, 0, this.dataGridView1.Width, this.dataGridView1.Height)); e.Graphics.DrawImage(bm, 0, 0); } } }
Mais informações podem ser encontradas neste link.
- Marcado como Resposta Thales F Quintas sexta-feira, 17 de junho de 2016 18:00