SQL - 选择distinct

时间:2011-07-04 12:27:58

标签: sql vb.net select combobox

我在select sql数据库表中使用了select distinct语句和2个字段。这是我的代码。

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 个答案:

答案 0 :(得分:5)

您在sql语句中只选择了一列,作者。 BookCode不存在,因此它也不在数据集中。

在Sql语句中包含BookCode,它将被修复

答案 1 :(得分:5)

也许您正在寻找

SELECT DISTINCT Author, Bookcode FROM tblBook

Union用于合并行而不是列..

因此,您的查询将返回一个列,其中您拥有所有书籍代码(同样不同)的同一列中的所有autors(不同)。

答案 2 :(得分:4)

UNION操作不能以这种方式工作。

您想要一个包含两列的记录集 - 作者和BookCodes,因此您需要一个类似的查询:

 SELECT DISTINCT Author, BookCode FROM tblBook

答案 3 :(得分:1)

您查询两个不同的事物。

你要么......

  1. 获取每本书的作者。在这种情况下,必须进行连接表的查询,因此union不是一个选项

  2. 您确实需要将结果作为一列,在这种情况下为列提供别名并绑定别名

    SELECT DISTINCT作者AS mycolumn FROM tblBook 联盟 SELECT DISTINCT BookCode AS mycolumn FROM tblBook