2016-12-27 19 views
8

Birisi, JSON türünü parametre olarak SQL Server 2016'da saklı yordamına ADO.Net kullanarak C# ASP.Net kullanarak nasıl geçirileceğini örnek verebilir Çekirdek Web Api projesi? SQL Server 2016 saklı yordamı örneğini görmek ve C# ASP.Net Çekirdek Web Api'sinde JSON türünü geçmek istiyorum.SQL Server 2016'ya parametre olarak parametre olarak geçirme ASP.Net Core projesinde ADO.Net kullanılarak saklı yordam

+2

Çok güzel bir soru. Ben de –

+0

AFIAK istiyorum, Sql server 2016 bir JSON veri tipine sahip değil, bu yüzden jsonunuzu saklı prosedüre bir varchar olarak aktarıyorsunuz. Saklı yordamın içinde JSON verilerini nasıl işleyeceğini bilen [yerleşik işlevleri] (https://msdn.microsoft.com/en-us/library/dn921897.aspx) kullanabilirsiniz. [Bu makale.] 'De bir kod örneği görebilirsiniz (https://blogs.msdn.microsoft.com/sqlserverstorageengine/2015/09/08/passing-arrays-to-t-sql-procedures-as-json/) –

+0

Sorunuzda iki cümle var ve her ikisi de * tam olarak aynı şeyi söylüyor. Ve sonra sorunuzun başlığı tam olarak aynı şeyi söylüyor * tekrar *. Lütfen sorunuzu temizleyin. – Tomalak

cevap

7

sql dosyasında json data type yok, saklı yordamınanumaranızı varchar olarak gönderebilirsiniz.

Json'unuzu tabloya eşlemek isterseniz, verileri rows ve columns'a dönüştürmek için OPENJSON kullanın.

CREATE PROCEDURE SaveJSON 
@pID int, 
@pJson nvarchar(max) 

AS 
BEGIN 

INSERT INTO [YourTable] 
     ([ID] 
     ,[JSONData]) 
VALUES 
     (@pID 
     ,@pJson) 
END 

sofraya json nesneleri eşleştirmek istiyorsanız bu

//json would be something like this 
[ 
{ "id" : 2,"name": "John"}, 
{ "id" : 5,"name": "John"} 
] 

INSERT INTO YourTable (id,Name) 
SELECT id, name 
FROM OPENJSON(@pJson) 
WITH (id int, 
name nvarchar(max)) 

Here size json data

0

SQL ile başa çıkmak için ayrıntılı fikir verecektir çok iyi ve ayrıntılı bir makale yapabilirsiniz Sunucu 2016 yerel JSON desteğine sahip - yeni bir JSON veri türü (nvarchar tabanlı) yanı sıra JSON biçiminde bir sorgudan çıktı dönüştürmek için JSON komutu

Microsoft ayrı JSON veri türü içermiyordu - bunun yerine, (JSON içine veritabanı satırları paketlemek için, ya da ilişkisel veri içine JSON ayrıştırmak için) NVARCHAR(n)

Eğer Çeşidi sütunlarda faaliyet gösterdikleri JSON fonksiyonları da vardır JSON metniniz var, JSON'dan veri ayıklayabilir veya JSON'un yerleşik işlevler JSON_VALUE, JSON_QUERY ve ISJSON kullanılarak düzgün şekilde biçimlendirildiğini doğrulayabilirsiniz. Daha gelişmiş sorgulama ve analiz için OPENJSON işlevi, bir dizi JSON nesnesini bir dizi satıra dönüştürebilir. Herhangi bir SQL sorgusu döndürülen sonuç kümesinde yürütülebilir. Son olarak, sorgu sonuçlarını JSON metni olarak biçimlendirmenizi sağlayan FOR JSON yan tümcesi vardır.

Bu nedenle, saklı yordam parametreniz olarak NVARCHAR(MAX) kullanmanızı öneririz.

İlgili konular