xdiet Ответов: 1

Как искать datagridview (данные хранимой процедуры) с помощью текстового поля


В моем приложении Windows у меня есть элемент управления Datagridview и Textbox. Я использую хранимую процедуру для отображения некоторых данных в datagridview. Проблема в том, что когда я попытался выполнить поиск в своем datagridview, ничего не происходит, а также он так запаздывает при вводе в текстовое поле, и я обнаруживаю это

CustomersList.DataSource = dt;

являться причиной. Я довольно новичок в использовании хранимых процедур. Я надеюсь, что кто-нибудь сможет мне помочь.

Что я уже пробовал:

Datatable dt;
private void txt_usersearch_TextChanged(object sender, EventArgs e)
{
    using (var con = new SqlConnection(ConfigurationManager.ConnectionStrings["SalesInventoryManagement.Properties.Settings.Setting"].ConnectionString))
        {
            using (var cmd = new SqlCommand("usp_GetCustomers", con))
            {
                cmd.CommandType = CommandType.StoredProcedure;                   
                dt.DefaultView.RowFilter = "Full_Name LIKE '%{txt_usersearch.Text}%'";
                CustomersList.DataSource = dt;
            }
        }
}

and this code is to display my data to datagridview

public class Display 
{
    public static void Display_Customer(DataTable dt, DataGridView dgv)
    {     
        using (var con = new SqlConnection(ConfigurationManager.ConnectionStrings["SalesInventoryManagement.Properties.Settings.Setting"].ConnectionString))
        {
            using (var cmd = new SqlCommand("usp_GetCustomers", con))
            {               
                con.Open();
                cmd.CommandType = CommandType.StoredProcedure;

                using (var sda = new SqlDataAdapter(cmd))
                {                        
                    dt = new DataTable();
                    sda.Fill(dt);
                    dgv.DataSource = dt;
                }

                con.Close();
            }
        }
    }  
}
Form load

private void ManageCustomer_Load(object sender, EventArgs e)
{
        Display.Display_Customer(dt, CustomersList);
}

F-ES Sitecore

Выполните фильтрацию в вашем SP. Передайте текст своим usp_GetCustomers в качестве параметра и попросите их сделать "где". Или создайте новый "usp_SearchCustomers", чтобы сделать это.

1 Ответов

Рейтинг:
11

Kraule

Вы можете использовать

var bs = новый источник привязки;
БС.Источник данных = ДТ;
dgv.Источник данных = БС;

чтобы заполнить ваш Datagridview.

И:

частная txt_usersearch_TextChanged недействительным(объект отправителя, EventArgs в электронной)
{
БС.Фильтр = "Full_Name как '%{txt_usersearch.Текст}%'";
}


xdiet

Спасибо