gpt4 book ai didi

c# - T-Sql 选择并将许多行和列连接成一行和一列

转载 作者:行者123 更新时间:2023-11-30 12:15:09 25 4
gpt4 key购买 nike

基本上,我只想从存储过程返回一行和一列结果。

比如我的示例数据和表格如下:

ColoumA INT
ColoumB INT
ColoumC NVARCHAR(MAX)

ColoumA ColoumB ColoumC
1 1 ErrorMessage1
2 2 ErrorMessage2
3 3 ErrorMessage3

在我成功执行存储过程后,如果成功,返回结果是一个字符串值,结合了上面所有的细节。比如

或者换句话说,我想将所有值存储在 TBL.rows[0][0]

在 C#.net 中调用代码时

String ReturnValue = "";
Datatable tbl = new Datatable(AREA);
ReturnValue = tbl.Rows[0][0].ToString().Trim();
Console.Writeline("Sample Output");
Console.Writeline(ReturnValue);

我期待这样的事情:

Sample Output
ColoumA: 1, ColoumB 1, ErrorMessage1
ColoumB: 2, ColoumB 2, ErrorMessage2
ColoumC: 3, ColoumC 3, ErrorMessage3

我可以使用 T-Sql Statment 进行选择吗?如果可以的话?我怎样才能得到它?

希望有人能理解并回答我的问题。

谢谢:

PS:抱歉我的英语解释不好

最佳答案

我的强烈建议是:不要。将其作为网格访问(常规 SELECT),并在您的应用层进行任何处理,即

var sb = new StringBuilder();
using(var reader = cmd.ExecuteReader()) {
while(reader.Read()) {
sb.Append("ColoumA: ").Append(reader.GetInt32(0))
.Append(", Coloum B").Append(reader.GetInt32(1))
.Append(", ").Append(reader.GetString(2)).AppendLine();
}
}
string s = sb.ToString();

但是,您可以通过以下方式在 TSQL 中执行此操作:

declare @result varchar(max) = ''
select @result = @result + 'ColoumA: ' + CONVERT(ColoumA, varchar(10)) +
', ColoumB ' + CONVERT(ColoumB, varchar(10)) + ', ' + ColoumC + '
' -- newline!
from ...

select @result

select @result = @result + ... 模式几乎可以满足您的描述。

关于c# - T-Sql 选择并将许多行和列连接成一行和一列,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/8179922/

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