gpt4 book ai didi

c# - 如何将动态sql列读入C#

转载 作者:行者123 更新时间:2023-12-05 06:43:12 25 4
gpt4 key购买 nike

我有一个生成动态 sql 列的 sql 数据透视查询。如何将这些值读入 C# 对象?

虽然我能够从数据读取器读取值,但我并没有取得太大的成功。我无法将它打包成一个对象。

我需要使用 DataReader 并通过服务层将对象传递到 UI。

类似下面的sql代码,

DECLARE @cols AS NVARCHAR(MAX),
@query AS NVARCHAR(MAX)

SELECT @cols = STUFF((SELECT ',' + QUOTENAME([MONTH])
FROM #REVENUE
FOR XML PATH(''), TYPE
).value('.', 'NVARCHAR(MAX)')
,1,1,'')

SELECT @query =
'SELECT * FROM
(SELECT
[MONTH],
SALES
FROM #REVENUE)X
PIVOT
(
AVG(SALES)
for [MONTH] in (' + @cols + ')
) P

EXEC SP_EXECUTESQL @query

最佳答案

如果您选择一个 SQLDataReader,它有一个 GetName将返回列名称的属性。像这样的东西:

    using (System.Data.SqlClient.SqlCommand cmd = new System.Data.SqlClient.SqlCommand(yourQuery, yourConnection)) {

using (IDataReader reader = cmd.ExecuteReader) {
for (int i = 0; i <= reader.FieldCount; i++) {
var name = reader.GetName(i);
}
}
}

关于c# - 如何将动态sql列读入C#,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/34126902/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com