SQL - выделять разные - PullRequest
0 голосов
/ 04 июля 2011

Я использовал оператор select disctinct с 2 полями из моей таблицы базы данных sql.Вот мой код.

myCommand = New SqlCommand("SELECT DISTINCT Author FROM tblBook UNION SELECT DISTINCT BookCode FROM tblBook",myConnection)
 myAdapter = New SqlDataAdapter(myCommand)
 myAdapter.Fill(myDataSet, "tblBook")
 cboAuthor.DataSource = myDataSet.Tables(0)
 cboAuthor.DisplayMember = "Author"
 cboAuthor.DisplayValue = "BookCode"

, и он генерирует ошибку: cannot bind to the new member. Parameter name:value.Пожалуйста, помогите

Ответы [ 4 ]

5 голосов
/ 04 июля 2011

Возможно, вы ищете

SELECT DISTINCT Author, Bookcode FROM tblBook

Объединение используется для объединения строк, а не столбцов.

Таким образом, ваш запрос возвращает один столбец, за которым следуют все авторы (разные)в том же столбце по строкам всех книжных кодов (в том числе и по отдельности).

5 голосов
/ 04 июля 2011

вы выбрали только один столбец в вашем SQL-запросе, Автор. BookCode не присутствует, поэтому он также не будет в наборе данных.

Включите BookCode в оператор Sql, и он будет исправлен

4 голосов
/ 04 июля 2011

Операция UNION не работает таким образом.

Вам нужен набор записей, содержащий два столбца - Authors и BookCodes, поэтому вам понадобится запрос что-то вроде:

 SELECT DISTINCT Author, BookCode FROM tblBook
1 голос
/ 04 июля 2011

Вы делаете запрос двух разных вещей.

Вы либо хотите ...

  1. Получить автора каждой книги. В этом случае нужно сделать запрос, соединяющий таблицы, поэтому объединение не является опцией

  2. Вам действительно нужен результат как один столбец, в этом случае присвойте столбцу псевдоним и свяжите псевдоним

    ВЫБЕРИТЕ DISTINCT Автор AS mycolumn FROM tblBook UNION ВЫБЕРИТЕ DISTINCT BookCode AS mycolumn ОТ tblBook

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...