我正在用C#(windows窗体)和SQL-Server做一个程序,我需要从两列中取出字符串并将它们放入一个数组中。我稍后将使用该数组,以实现对某些textBox的自动完成。规则是:
我认为我应该使用“UNION”将两列中的所有字符串和SqlDataReader放在一起,并在将字符串放入数组时使用“while”循环。
这是一个示例表,用它来向我解释:
----------------------------
| name | surname |
----------------------------
| John | Jackson |
----------------------------
| Michael | Jones |
----------------------------
| Amanda | Lopez |
----------------------------
| Christina | Lopez |
----------------------------
那么查询怎么样?如何将结果放入数组?
答案 0 :(得分:1)
如果你想要连接使用它:
SELECT DISTINCT name + surname FROM MyTable
如果你不想要连接,你可以这样做:
SELECT Col1 FROM MyTable
UNION
SELECT Col2 FROM MyTable
只要Col1
和Col2
具有相同的数据类型,联合就会起作用。获得数据后,您可以将其(通过sproc)返回到客户端(数据集,数据表或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 联盟 SELECT col2 FROM #test
DROP TABLE #Test
结果是:
bob
bob2
jane
jane1
jon
marc
marc2
phil
ste