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