Как лучше организовать поиск по БД?

204
08 января 2018, 07:41

Привет. Есть страница(работаю в WPF) меню, где есть четыре кнопки которые вызывают окно поиска по БД(поиск сотрудников по номеру кабинета, поиск техники по ФИО сотрудника и т.д.). Также есть страница с dataGrid куда должен выводится результат запроса и класс Querys где обрабатываются все запросы. На все четыре вида поиска должно быть одно окно поиска также как одна страница для результатов поиска. В окне поиска textBox и button. Вопрос - как окну поиска понять что именно искать(какой метод в Querys вызывать в смысле)? То, что он должен искать должно зависеть от того какой кнопкой, в меню, он был вызван. Как это сделать?

Answer 1

Можно так но тут комбо бокс для выбора для поиска

public partial class MainWindow : Window
    {
        public MainWindow()
        {
            InitializeComponent();
            dataGrid.ItemsSource = new Person().Persons();
            Сriteria.ItemsSource = new List<string> { "Имя", "Возраст", "Фамилия" };
        }
        private void Search(object sender, TextChangedEventArgs e)
        {
            var s = ((TextBox)sender).Text;
            switch (Сriteria.Text)
            {
                case "Имя":
                    dataGrid.ItemsSource = new Person().Persons().Where(g => g.Name.Contains(s));
                    break;
                case "Фамилия":
                    dataGrid.ItemsSource = new Person().Persons().Where(g => g.Family.Contains(s));
                    break;
                case "Возраст":
                    dataGrid.ItemsSource = new Person().Persons().Where(g => g.Age == int.Parse(s));
                    break;
                default:
                    MessageBox.Show("Параметр дял поиска");
                    break;
            }
        }
    }
    class Person
    {
        public string Name { get; set; }
        public string Family { get; set; }
        public int Age { get; set; }

        public List<Person> Persons()
        {
            var T = new List<Person>();
            for (int i = 0; i < 20; i++)
            {
                T.Add(new Person() { Age = i, Family = $"Family-{i}", Name = $"Name-{i}" });
            }
            return T;
        }
    }

XAML

<Grid>
        <TextBox Height="30" TextChanged="Search" Margin="50,10,0,0" Width="200" VerticalAlignment="Top" HorizontalAlignment="Left"></TextBox>
        <ComboBox Name="Сriteria" Height="30" Margin="270,10,0,0" Width="200" VerticalAlignment="Top" HorizontalAlignment="Left"></ComboBox>
        <DataGrid Margin="50" AutoGenerateColumns="False" Name="dataGrid">
            <DataGrid.Columns>
                <DataGridTextColumn Header="Фамилия" Binding="{Binding Path=Family}" Width="220" />
                <DataGridTextColumn Header="Имя" Binding="{Binding Path=Name}" Width="220" />
                <DataGridTextColumn Header="Возраст" Binding="{Binding Path=Age}" Width="100" />
            </DataGrid.Columns>
        </DataGrid>
    </Grid>
READ ALSO
Обработчик для UserControl

Обработчик для UserControl

Есть 5 шт UserControl'ов, в каждом делаю ( разные названия классов )

174
не работает return на событии onsubmit

не работает return на событии onsubmit

Здравия! У меня возникла интересная проблема: Имеется

256
Массив не инициализируется в сервисе Angular 2

Массив не инициализируется в сервисе Angular 2

Доброе время уток,кря-кряПытаюсь сделать систему меток на Ангуляре, но вот не задача есть компонент :

251