2017-02-08 2 views
0

Я вставляю данные из C# в sql. Я взял вывод json в строковом объекте. JSON, какКак вставить json в SQL Server 2012?

{'data': '{"Code": "MXXXXX", "Status": "failed"}'} 

Как я могу добавить данные JSON в SQL через зр?

+2

Sql сервер не имеют json-тип данных. Вы можете хранить значения json в любом строковом типе, например varchar, nvarchar и т. Д. –

+0

Если я использую varchar, не могу его вставить. вставить в значения table1 (jsonscript) ({'data': '{"UUI": "MXXXXX", "DialStatus": "ответил"}'}) –

+0

Собираетесь ли вы сохранить значение в 2 полях? если да, десериализуйте json и сохраните его в БД. Если нет, вы можете использовать sql-параметр, чтобы избежать значения (и также предотвратить инъекцию sql) – Prisoner

ответ

0

Создать 1 хранимую процедуру для добавления JSon данных

Ниже схема для таблицы

[tbl_activitylog](
    [fk_user_id] [bigint], 
    [log_type] [nvarchar](50) , 
    [data] [nvarchar](max) , // json data will be inserted here 

Create procedure [dbo].[spp_add_log] 
(
    @fk_user_id bigint, 
    @log_type nvarchar(50), 
    @data nvarchar(MAX) 
) 
as 
begin 
    insert into tbl_activitylog (fk_user_id,log_type,data) values (@fk_user_id,@log_type,@data) 
end 

C# код я использовал Linq к объектам для доступа к хранимой процедуре

List<cls_response_code_data> resp_data_list = db.ExecuteStoreQuery<cls_response_code_data>(
    "spp_add_log @fk_user_id,@log_type,@data", 
    new SqlParameter("@fk_user_id", fk_user_id), 
    new SqlParameter("@log_type", log_type), 
    new SqlParameter("@data", data) 
).ToList();