Форум программистов, компьютерный форум, киберфорум
Наши страницы
C#: WPF, UWP и Silverlight
Войти
Регистрация
Восстановить пароль
 
Nikablacky
0 / 0 / 0
Регистрация: 17.10.2015
Сообщений: 9
#1

Выборка по данным, введенным в текстбокс

28.12.2016, 21:41. Просмотров 209. Ответов 3
Метки нет (Все метки)

У меня создана база данных с использованием model-first.
Есть три таблички:
Books со свойствами BookID, Title.
Authors со свойствами AuthorID, Name, Surname.
AuthorBook для организации связи многие-ко-многим со свойствами AuthorBookID, AuthorID, BookID.
Они все заполнены через Management Studio
Также написана хранимая процедура, которая делает следующее: вводится название книги и в результате выдается табличка с названием книги и ее автором
В Management studio скрипт работает, в visual studio тоже, но это надо как-то связать с вводом строки в textbox, и вот это я не знаю,как сделать
XML
1
2
3
4
5
<Canvas>
    <TextBox x:Name="SearchBox" Width="193" Height="32" Canvas.Left="38" Canvas.Top="38"></TextBox>
    <Button Name="SearchButton" Click="SearchButton_OnClick" Content="Search" Canvas.Left="204" Canvas.Top="80" Height="30" Width="64"></Button>
    <DataGrid x:Name="Info" ItemsSource="{Binding Path=Authorslist1}" Background="Honeydew" Canvas.Top="200" Canvas.Left="30" Width="259" Height="50" ></DataGrid>
</Canvas>
C#
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
public partial class UserPage : Window
{
    Model1Container db1 = new Model1Container();
    private MainWindow mv = new MainWindow();
 
    public UserPage(Model1Container d, MainWindow m)
    {
        InitializeComponent();
        DataContext = this;
        db1 = d;
        mv = m;
    }
 
 
    private void SearchButton_OnClick(object sender, RoutedEventArgs e)
    {
 
 
    }
И сам скрипт хранимки:
MySQL
1
2
3
4
5
6
7
8
9
10
CREATE PROCEDURE [dbo].AuthorProcedure1
    @name nvarchar(50) 
    AS
    SELECT 
    BookSet.Title, AuthorSet.Name, AuthorSet.Surname
    FROM [dbo].AuthorBookSet
    JOIN BookSet ON BookSet.BookID=AuthorBookSet.BookID 
    JOIN AuthorSet ON AuthorSet.AuthorID=AuthorBookSet.AuthorID
    WHERE Title=@name
    GO
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
28.12.2016, 21:41
Ответы с готовыми решениями:

Спрятать текстбокс
Всем привет, с WPF работаю впервые, срочно вопрос, ответив на который вы мне...

Прозрачный текстбокс
Здравствуйте. Мне нужен черный прозрачный текстбокс с белым текстом внутри. Я...

Запрет на вставку данных в текстбокс
Всем привет.подскажите как в wpf защитить текстбокс от скопированных данных...

Не отображает текстбокс. Не пойму никак
TextBox NewLabel = new TextBox(); NewLabel.Width = 40; NewLabel.Height = 20;...

Записать в текстбокс часть стоки
Добрый вечер ...! Надеюсь вы мне поможете! Есть файл *. cfg, я с него считываю...

3
FroztBal
25 / 25 / 10
Регистрация: 18.08.2014
Сообщений: 205
Завершенные тесты: 1
29.12.2016, 08:48 #2
Тебе нужно создать процедуру с входящим параметром и передавать содержимое TextBox`a при вызове из кода.
Другой вариант: создать вьюху, в коде в коллекцию загрузить содержимое вьюхи и работать уже с коллекцией.
0
Nikablacky
0 / 0 / 0
Регистрация: 17.10.2015
Сообщений: 9
29.12.2016, 10:23  [ТС] #3
FroztBal, В продецуре есть входящий параметр - название книги. при запуске в Management studio процедура правильно работает, как в коде вызвать, я не знаю
Написал вот так:
C#
1
2
var bookTitle = new SqlParameter("@name", SearchBox.Text);
var result = db1.Database.SqlQuery<BookViewModel>("AuthorProcedure1 @name", bookTitle).ToList();
предварительно создав класс-модель
C#
1
2
3
4
5
6
7
8
public  class BookViewModel
    {
        
            public string Title { get; set; }
            public string Name { get; set; }
            public string Surname { get; set; }
        
    }
а как дальше вывести в таблицу, где будет и название книги, и имя соответствующего автора?
0
FroztBal
25 / 25 / 10
Регистрация: 18.08.2014
Сообщений: 205
Завершенные тесты: 1
29.12.2016, 13:13 #4
C#
1
2
var param = "Трое из леса"
var result = db1.AuthorProcedure1(param);
0
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
29.12.2016, 13:13

Запретить делать вставку (paste) в текстбокс
Добрый день! У меня есть текстбокс в программе с#. Необходимо ограничить...

Текстбокс неправильно отображает кириллицу (Ответ от сервера)
ель ВКонтаР- Пишет, что то на подобии этого, когда в нем отображаю...

Элементарный органайзер: как привязать текстбокс к календарю
Доброй ночи! Пишу элементарный органайзер на WPF .Хочу сделать так, чтобы при...


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
4
Ответ Создать тему
Опции темы

КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2018, vBulletin Solutions, Inc.
Рейтинг@Mail.ru