如何将两列中的值插入数组以供以后与自动完成一起使用
本文关键字:一起 数组 插入 两列 | 更新日期: 2023-09-27 18:31:14
我正在用C#(Windows表单)和SQL-Server做一个程序,我需要从两列中获取字符串并将它们放入数组中。稍后我将使用该数组来实现某些文本框的自动完成。规则是:
- 数组应该能够容纳任何数量的字符串 I在列中,此数量可能超过 500 个字符串,并且是可变的。
- 我将需要列中的不同值,没有重复项。
我想我应该使用"UNION"将两列中的所有字符串放在一起,并在将字符串放入数组时使用带有"while"循环的 SqlDataReader。
这是一个示例表,用它来向我解释:
----------------------------
| name | surname |
----------------------------
| John | Jackson |
----------------------------
| Michael | Jones |
----------------------------
| Amanda | Lopez |
----------------------------
| Christina | Lopez |
----------------------------
那么查询的外观以及如何将结果放入数组中?
如果你想要一个连接,请使用这个:
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 服务器管理工作室
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')
从 #test 中选择 COL1 联盟 从 #test 中选择 COL2
DROP TABLE #Test
结果是:
bob
bob2
jane
jane1
jon
marc
marc2
phil
ste