基本上,我想从存储过程中只返回一行和一列结果。
例如,我的示例数据和表格如下所示:
ColoumA INT
ColoumB INT
ColoumC NVARCHAR(MAX)
ColoumA ColoumB ColoumC
1 1 ErrorMessage1
2 2 ErrorMessage2
3 3 ErrorMessage3
成功执行存储过程成功后,如果成功, 返回结果是一个字符串值,它结合了上面的所有细节。例如
或者在另一个Word中,我想将所有值存储在TBL.rows[0][0]
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:抱歉我的英语解释不好
答案 0 :(得分:3)
我的强烈建议在这里将是:不要。将其作为网格(常规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 + ...
模式几乎与您描述的相同。