none
Как создать форму заполняемую запросом в зависимости от параметров? RRS feed

  • Вопрос

  • C#
    У меня есть БД .mdb. В ней две таблицы "Авторы" и "Книги". У всех записей в таблице "Книги" есть поле "ID" - идентификатор автора, номер автора в таблице "Авторы".
    В программе необходимо в зависимости от пожелания пользователя вывести форму на которой будет отображена таблица с записями из таблицы "Книги" но только одного указанного ранее автора.
    Я создал DataSet, добавил в него таблицы и создал запрос содержащий все поля таблицы "Книги". Если бы надо было выполнять запрос все время для одного и того же автора, я бы написал в запросе в колонке "ID" в поле "Фильтр" нужное значение, но ведь значение каждый раз разное.
    Помогите пожалуйста.
    • Изменено Jake Darkwood 16 декабря 2013 г. 14:24 Забыл дописать язык программирования
    16 декабря 2013 г. 14:21

Ответы

  • Добрый день.

    То что вы хотите, называется параметры. Вот здесь, можете про них почитать. Единственно, там параметры передаются в хранимую процедуру, но никто не мешает указать и SQL запрос с параметром. Например, так:

    using (SqlConnection connection = new SqlConnection(connectionString))
        {
            // Create the command and set its properties.
            SqlCommand command = new SqlCommand();
            command.Connection = connection;
            command.CommandText = "select * from Books where AuthorId= @AuthorId";
    
            // Add the input parameter and set its properties.
            SqlParameter parameter = new SqlParameter();
            parameter.ParameterName = "@AuthorId";
            parameter.SqlDbType = SqlDbType.Int;
            parameter.Direction = ParameterDirection.Input;
            parameter.Value = int.Parse(textBoxAuthhor.Text);
    
            // Add the parameter to the Parameters collection. 
            command.Parameters.Add(parameter);
    

    • Помечено в качестве ответа Jake Darkwood 17 декабря 2013 г. 9:02
    • Снята пометка об ответе Jake Darkwood 17 декабря 2013 г. 9:03
    • Помечено в качестве ответа Jake Darkwood 17 декабря 2013 г. 9:03
    17 декабря 2013 г. 6:41
    Отвечающий

Все ответы

  • добавьте еще код, так будет больше шансов получить правильный ответ
    16 декабря 2013 г. 18:39
  • Добрый день.

    То что вы хотите, называется параметры. Вот здесь, можете про них почитать. Единственно, там параметры передаются в хранимую процедуру, но никто не мешает указать и SQL запрос с параметром. Например, так:

    using (SqlConnection connection = new SqlConnection(connectionString))
        {
            // Create the command and set its properties.
            SqlCommand command = new SqlCommand();
            command.Connection = connection;
            command.CommandText = "select * from Books where AuthorId= @AuthorId";
    
            // Add the input parameter and set its properties.
            SqlParameter parameter = new SqlParameter();
            parameter.ParameterName = "@AuthorId";
            parameter.SqlDbType = SqlDbType.Int;
            parameter.Direction = ParameterDirection.Input;
            parameter.Value = int.Parse(textBoxAuthhor.Text);
    
            // Add the parameter to the Parameters collection. 
            command.Parameters.Add(parameter);
    

    • Помечено в качестве ответа Jake Darkwood 17 декабря 2013 г. 9:02
    • Снята пометка об ответе Jake Darkwood 17 декабря 2013 г. 9:03
    • Помечено в качестве ответа Jake Darkwood 17 декабря 2013 г. 9:03
    17 декабря 2013 г. 6:41
    Отвечающий