2011-07-04 351 views
0

我用我的sql數據庫表中的2個字段選擇了disctinct語句。這是我的代碼。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。請幫助

回答

5

您在sql語句中只選擇了一列,Author。 BookCode不存在,所以它不會在數據集中。

包括在SQL語句中的bookcode和這將是固定

+0

是不是在聯盟?我不能在我的頭上運行工會,所以我不知道他的SQL將如何返回大聲笑 –

+0

只包括在SQL中的書代碼,它會很好「SELECT DISTINCT Author,Bookcode FROM tblBook」 – Martin

4

UNION操作,這種方式行不通。

你要包含兩列的記錄 - 作者和BookCodes所以你將需要查詢的東西,如:

SELECT DISTINCT Author, BookCode FROM tblBook 
5

也許你正在尋找

SELECT DISTINCT Author, Bookcode FROM tblBook 

聯盟用於合併行不是列..

所以,你的查詢返回一個單一的列,你有所有的作者(不同的)在同一列按照所有的書的行(不同的好)。

1

您提出了兩個不同的事情的查詢。

要麼你要...

  1. 獲取每本書的作者。在這種情況下,必須進行查詢連接表,所以工會是不是一種選擇

  2. 你確實需要的結果作爲一列,在這種情況下,給列一個別名,並綁定別名

    SELECT DISTINCT作者作爲mycolumn FROM tblBook UNION SELECT DISTINCT的bookcode AS mycolumn FROM tblBook