Изменить результаты таблицы данных в соответствии с вводом из текстового поля

1

Поэтому я даже не уверен, что это возможно, потому что я не нашел, чтобы кто-то еще делал это так. Но мне нужно изменить результаты datagridview, введя номер сотрудника в текстовое поле. Я бы нажал кнопку отправки, и он использовал бы введенный текст, чтобы вытащить только информацию о сотруднике. Возможно ли это, и как я могу это сделать?

Вот мой код, который я сделал до сих пор. Единственная проблема заключается в том, что он не помещает мой текст из textbox1 в запрос. Есть ли другой способ сделать это?

string query = "SELECT TellerNum, SessionName, PrincipleName, SessionDate, Comments, SessionKey FROM [SESSION] WHERE TellerNum = @teller ORDER BY TellerNum;";
                using (OleDbCommand cmd = new OleDbCommand(query, con))
                {
                    cmd.Parameters.AddWithValue("@teller", textBox1.Text);
                    cmd.ExecuteNonQuery();

                    OleDbDataAdapter da = new OleDbDataAdapter(query, con);
                    DataSet ds = new DataSet();
                    da.Fill(ds, "[Session]");

                    dataGridView1.DataSource = ds.Tables["[Session]"];
                }
Теги:

2 ответа

1
Лучший ответ

Вы не используете параметр в своем адаптере:

DataTable dt = new DataTable();
string query = "SELECT TellerNum, SessionName, PrincipleName, SessionDate, Comments, SessionKey FROM [SESSION] WHERE TellerNum = @teller ORDER BY TellerNum;";
using (OleDbDataAdapter da = new OleDbDataAdapter(query, con)) {
  da.SelectCommand.Parameters.AddWithValue("@teller", textBox1.Text);
  da.Fill(dt);
}
dataGridView1.DataSource = dt;

Кроме того, вы должны посмотреть DataViews для фильтрации данных DataGridView. У меня есть пример: Самый быстрый способ поиска в коллекции строк

  • 0
    Спасибо вам большое! Я знал, что он не использовал адаптер правильно, но я не мог понять, как его переключать.
0

Вы можете связать событие OnTextChanged с этим текстовым полем (textBox1). Или вы можете нажать кнопку, которая будет загружать событие привязки привязки или все, что вы хотите.

Затем в вашем коде позади будет событие, что-то вроде этого:

protected void textBox1_TextChanged(object sender, EventArgs e)
{
    BindGrid(textBo1.Text);
}

private void BindGrid(string teller)
{
     using (OleDbCommand cmd = new OleDbCommand(query, con))
            {
                cmd.Parameters.AddWithValue("@teller", teller);
                cmd.ExecuteNonQuery();

                OleDbDataAdapter da = new OleDbDataAdapter(query, con);
                DataSet ds = new DataSet();
                da.Fill(ds, "[Session]");

                dataGridView1.DataSource = ds.Tables["[Session]"];
                dataGridView1.BindGrid();
            }

}
  • 0
    Спасибо за помощь. У меня возникли проблемы со строкой dataGridView1.BindGrid (); Он говорит, что не содержит определения для него.

Ещё вопросы

Сообщество Overcoder
Наверх
Меню