我有一个过程,我使用 OPENJSON 将 Json 字符串显示为键值对。当我执行该过程时,它在控制器中返回预期值 bu,数据集为空。它只显示表头 - 键、值、类型。根本没有数据。当我使用不同的非常相似的程序时,它似乎工作正常。不知道发生了什么。请帮忙!提前致谢!
这是我的程序:
CREATE PROCEDURE [dbo].[PROC_NH_Journal_Tab1Data]
@EnterpriseId nvarchar,
@exactgroup nvarchar
AS
declare @json nvarchar(max)
set @json=(select Tab2Json from tbl_NH_T_JournalDataPost where
EnterpriseId=@EnterpriseId and GroupName = @exactgroup)
SELECT * FROM
OPENJSON ( @json )
Return 0
这是我的行动:
public JsonResult GetAnswersFortab1(string exact)
{
string JSONresult = string.Empty;
string EnterpriseId = "User";
try
{
SqlConnection sqlcon = new SqlConnection(con);
SqlCommand cmd = new SqlCommand("[PROC_NH_Journal_Tab1Data]", sqlcon);
cmd.CommandType = CommandType.StoredProcedure;
cmd.Parameters.AddWithValue("@EnterpriseId", EnterpriseId);
cmd.Parameters.AddWithValue("@exactgroup", exact);
sqlcon.Open();
SqlDataAdapter adapter = new SqlDataAdapter();
adapter.SelectCommand = cmd;
DataSet data;
data = new DataSet();
adapter.Fill(data, "Table2");
DataTable dt1 = data.Tables[0];
ViewBag.getJson = dt1;
}
该过程在执行时会给出一个包含键值对的表。但是当我调试时,“数据”是“DataSetVisualizer”中的一个空表。仅带有标题(键,值,类型)的空表。不存在数据。这是我在程序中的 Print @json
key value type
emoji2 2 1
check2 on 1
check5 on 1
check7 on 1
hiddentext weds 1