2012-04-13 18 views
0

我正在做一個程序在C#(窗體窗體)和SQL服務器,我需要從兩列中的字符串,並將它們放入一個數組。稍後我將使用該數組來實現一些文本框的自動完成。規則是:如何將兩列中的值插入到數組中以供將來與自動完成一起使用?

  • 數組應該能夠容納任何我 在列串的量,這個量可能超過500個字符串,是可變的。
  • 我將需要列中的不同值,不重複。

我想我應該使用「UNION」將兩列中的所有字符串和帶有「while」循環的SqlDataReader放到一起時,將字符串放入數組中。

下面是一個示例表,用它來解釋一下:

---------------------------- 
| name | surname | 
---------------------------- 
| John | Jackson | 
---------------------------- 
| Michael | Jones | 
---------------------------- 
| Amanda | Lopez | 
---------------------------- 
| Christina | Lopez | 
---------------------------- 

因此,如何將查詢的樣子,我怎麼會可以把結果放到一個數組?

回答

1

如果你想有一個串連使用這樣的:

SELECT DISTINCT name + surname FROM MyTable 

如果你不想要一個串連,你可以這樣做:

SELECT Col1 FROM MyTable 
    UNION 
    SELECT Col2 FROM MyTable 

一名工會將工作,只要Col1Col2具有相同數據類型。獲得數據後,您可以將其帶回客戶端(通過sproc)到數據集,datatable或sqldatareader中。

其餘的應該很簡單,拿數據並將其存儲在某種數組中。 無論是通過某種循環

reader = GetData(); 
while(reader.read()) 
{ 
    //store into an array... 
} 

複製粘貼此在SQL Server Management Studio中

CREATE TABLE #Test 
(
col1 varchar(10), 
col2 varchar(10) 
) 

INSERT INTO #Test(col1, col2) VALUES('jon', 'jane') 
INSERT INTO #Test(col1, col2) VALUES('jane', 'jane') 
INSERT INTO #Test(col1, col2) VALUES('bob', 'phil') 
INSERT INTO #Test(col1, col2) VALUES('marc', 'phil') 
INSERT INTO #Test(col1, col2) VALUES('jon', 'jon') 
INSERT INTO #Test(col1, col2) VALUES('jon', 'Jon') 
INSERT INTO #Test(col1, col2) VALUES('jane1', 'jane') 
INSERT INTO #Test(col1, col2) VALUES('bob2', 'phil') 
INSERT INTO #Test(col1, col2) VALUES('marc2', 'phil') 
INSERT INTO #Test(col1, col2) VALUES('ste', 'jane') 

SELECT COL1 FROM #TEST UNION SELECT COL2 FROM #TEST

DROP TABLE #Test 

的結果是:

bob 
bob2 
jane 
jane1 
jon 
marc 
marc2 
phil 
ste 
+0

查詢將從Col1中採用不同的值,並從Col2中採用不同的值,但如果Col1中的值與Col2中的值相同,會出現什麼情況? 另外,如果你能完成「while」週期內的內容,那將會很棒:) – Alternatex 2012-04-13 18:30:35

+0

@Alternatex - 你需要太多的幫助 - 爲此付出一些努力,否則它不是真的有用嗎?對Col1和Col2的幫助...你只需要比較2 ...'SELECT DISTINCT Col1 FROM MyTable WHERE Col1 NOT IN(SELECT Col2 FROM MyTable)UNION SELECT DISTINCT Col2 FROM MyTable WHERE Col2 NOT IN(SELECT Col1 FROM MyTable)' – JonH 2012-04-13 18:32:24

+0

http://sqlfiddle.com/#!3/fa51d/1 – JonH 2012-04-13 18:41:23

相關問題