Билдер SQL запросов

Язык Visual Basic на платформе .NET.

Модераторы: Ramzes, Sebas

MIT
Мега гуру
Мега гуру
Аватара пользователя
 
Сообщения: 2211
Зарегистрирован: 17.09.2006 (Вс) 22:46

Билдер SQL запросов

Сообщение MIT » 20.01.2010 (Ср) 21:19

Для получения данных из базы (в случае использования SQL) используются объекты SqlConnection, SqlCommand и SqlDataAdapter. В общем ничего сложного:
Код: Выделить всё
         Using _
               conn As SqlConnection = New SqlConnection("ConnectionString"), _
               cmd = New SqlCommand("SELECT траляля FROM бубубу WHERE бубубу.пыщь = @ололо", conn)

            cmd.Parameters.AddWithValue("@ололо", 1)
            Using da As SqlDataAdapter = New SqlDataAdapter(cmd), ds As New DataSet
               da.Fill(ds)
               ...
            End Using
         End Using

Один тут только минус - текст команды надо задавать изначально. А что если надо построить запрос типа SELECT траляля FROM бубубу WHERE бубубу.пыщь IN (1, 2, 3, 4)? Есть ли какие-нибудь стандартные средства вместо одной переменной передать массив?

Можно, конечно, сделать такой билдер самостоятельно, но если для чисел проблем не возникнет, то при добавлении строк возможны косяки с реализацией экранирования.
Изображение
You can change your face, but can`t change your mind. No matter what you do.
Создайте еще более понятный интерфейс и мир создаст еще более тупого юзера. (с) Баш

MIT
Мега гуру
Мега гуру
Аватара пользователя
 
Сообщения: 2211
Зарегистрирован: 17.09.2006 (Вс) 22:46

Re: Билдер SQL запросов

Сообщение MIT » 21.01.2010 (Чт) 13:17

Нашел аналогичную тему: http://stackoverflow.com/questions/337704/parameterizing-a-sql-in-clause, может кому пригодиться.
Изображение
You can change your face, but can`t change your mind. No matter what you do.
Создайте еще более понятный интерфейс и мир создаст еще более тупого юзера. (с) Баш

ANDLL
Великий гастроном
Великий гастроном
Аватара пользователя
 
Сообщения: 3450
Зарегистрирован: 29.06.2003 (Вс) 18:55

Re: Билдер SQL запросов

Сообщение ANDLL » 21.01.2010 (Чт) 15:12

Linq умеет генерировать запросы принимая в качестве параметра массив. И генерирует именно запрос вида in(arg0,arg1,...)
Гастрономия - наука о пище, о ее приготовлении, употреблении, переварении и испражнении.
Блог


Вернуться в Visual Basic .NET

Кто сейчас на конференции

Сейчас этот форум просматривают: нет зарегистрированных пользователей и гости: 16

    TopList