【发布时间】:2022-10-01 01:11:01
【问题描述】:
我在 SQL Server 中创建了一个存储过程,它以 json 格式返回
ALTER PROCEDURE [dbo].[GetAllRoles]
AS
BEGIN
SELECT *
FROM dbo.roles
FOR JSON PATH;
END
此存储过程的输出:
[
{ \"role_id\": 101, \"role_description\": \"Trainee\" },
{ \"role_id\": 102, \"role_description\": \"Lead\" },
{ \"role_id\": 103, \"role_description\": \"Manager\" },
{ \"role_id\": 104, \"role_description\": \"Senior Tester Engineer\" },
{ \"role_id\": 105, \"role_description\": \"Junior Tester Engineer\" },
{ \"role_id\": 106, \"role_description\": \"Senior Developer AEM\" },
{ \"role_id\": 107, \"role_description\": \"Junior Developer AEM\" }
]
我想在 ASP.NET APIController 中访问这个存储过程:
public StringBuilder Get()
{
var jsonResult = new StringBuilder();
var connect = new SqlConnection(ConfigurationManager.ConnectionStrings[\"SupplyCon\"].ConnectionString);
connect.Open();
SqlCommand cmd = connect.CreateCommand();
cmd.CommandText = \"GetAllRoles\";
cmd.CommandType = CommandType.StoredProcedure;
var reader = cmd.ExecuteReader();
if (!reader.HasRows)
{
jsonResult.Append(\"[]\");
}
else
{
while (reader.Read())
{
jsonResult.Append(reader.GetString(0).ToString());
}
}
return jsonResult;
}
通过邮递员后,我得到以下回应。我期待在 SQL Server 中运行存储过程后得到的相同响应。但是,我得到了一些奇怪的东西。
邮递员的结果:
-
这有什么奇怪的?
标签: asp.net sql-server asp.net-web-api stringbuilder executereader