您好,谢谢您的时间。如果我有一个Sqldatasource从我的数据库中提取基于某个条件的ID列表,我怎么能将该列表调用格式化为后面的代码中的逗号分隔字符串?例如,假设这是我正在使用的查询:
SELECT ID FROM MyDatabase WHERE Email <> ''
结果是:
| ID |
------
| 16 |
| 2 |
| 81 |
| 4 |
如何将代码后面的调用作为逗号分隔列表调用,而不像下面那样使用尾随逗号?
16,2,81,4
答案 0 :(得分:1)
试试这个(For in code behind):
使用for循环和concat字符串填充数据表中的数据并访问每个数据。
For iRowIdx = 0 To dtblData.Rows.Count - 1
Result += dtblData.Rows(iRowIdx)("ID") + ','
Next
相反,您可以组合SQL中的值:
SELECT
STUFF(
(SELECT ',' + CAST(ID as varchar(max))
FROM (SELECT ID
FROM MyDatabase) AS B FOR
XML PATH(''), TYPE).value('.', 'VARCHAR(MAX)'), 1, 1, '')
AS ExpectedResult
答案 1 :(得分:1)
您可以做的一件事是使用Datareader
。这将允许您循环查看从查询返回的记录,并访问后面代码中的所有值。
您可以像这样使用它,
command = new sqlcommand("Select ID from [Test]", conn)
datareader = command.ExecuteReader()
While datareader.Read()
'Access the Columns here
End While