@ProB1

Поиск по datagridview в C#?

У меня есть datagridview в которой есть Сумма и Дата_Заключения
Мне нужно написать запрос в "private void button1_Click(object sender, EventArgs e)" что бы при нажатии на кнопку , он считывал с textBox введенную дату (только месяц и год). и выводил отфильтрованные записи в таблицу
код подключения к бд:
public Otchet()
        {
            InitializeComponent();
            LoadData2();
        }
 private void LoadData2()
        {

            string connectString = "Data Source=PC\\SQLEXPRESS;Initial Catalog=ACCORDA;Integrated Security=True";
            SqlConnection myConnection = new SqlConnection(connectString);

            myConnection.Open();

           
            string query = " SELECT op.Summa, dg.Data_Zakluchenija" +
                " FROM Dogovor AS dg " +
                "JOIN Oplata AS op ON op.id_dogovor = dg.id_dogovor";

            SqlCommand command2 = new SqlCommand(query, myConnection);
            SqlDataReader reader2 = command2.ExecuteReader();

            List<string[]> data = new List<string[]>();

            while (reader2.Read())
            {
                data.Add(new string[2]);
                data[data.Count - 1][0] = reader2[0].ToString();
                data[data.Count - 1][1] = reader2[1].ToString();
                
            }

            reader2.Close();
            myConnection.Close();
            foreach (string[] s in data)
            dataGridView2.Rows.Add(s);
} 

private void button1_Click(object sender, EventArgs e)
        {
                       
        }
  • Вопрос задан
  • 2102 просмотра
Пригласить эксперта
Ответы на вопрос 1
@baimkin
Не надо в таблицу добавлять строки через SqlDataReader.

DataTable rezult = new DataTable();

//Запрашиваем ответ в виде таблицы
MySqlDataAdapter da = new MySqlDataAdapter(query, myConnection);
da.Fill(rezult );
//Показываем данные на гриде
dataGridView2.DataSource = rezult;

//Создаем команду фильтра
string filter = "Convert([Data_Zakluchenija],'System.String') Like '%" + textBoxDate.Text+ "%'";

//Фильтруем грид по введенному тексту
(dataGridView2.DataSource as DataTable).DefaultView.RowFilter = com;


Не самый лучший, но простой и быстрый способ.
Ответ написан
Комментировать
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы