Невозможно привести объект типа 'Newtonsoft.Json.Linq.JObject' к типу 'System.Collections.Generic.Dictionary`2 [System.String, System.Object]' - PullRequest
2 голосов
/ 21 ноября 2019

Я пытаюсь вставить список объектов в таблицу , используя SqlBulkCopy . Когда код попал в строку

 var columnNames = ((Dictionary<string, object>)bData[0]).Select(x => x.Key).ToList();'

, я получил:

'Невозможно привести объект типа' Newtonsoft.Json.Linq.JObject 'к типу' System.Collections. Generic.Dictionary`2 [System.String, System.Object] '' ошибка.

Не могли бы вы мне помочь?

public Int64 PostBulkMessage(List<object> bData)
{
    DataTable dt = new DataTable();

    var columnNames = ((Dictionary<string, object>)bData[0]).Select(x => x.Key).ToList();

    for (int i = 0; i < columnNames.Count(); i++)
    {
        dt.Columns.Add(columnNames[i]);
    }
    foreach (Dictionary<string, object> customer in bData)
    {
        DataRow dr = dt.NewRow();
        for (int i = 0; i < columnNames.Count(); i++)
        {
            dr[columnNames[i]] = customer[columnNames[i]];
        }
        dt.Rows.Add(dr);
    }
    if (dt.Rows.Count > 0)
    {
        string consString = ConfigurationManager.ConnectionStrings["ConnEntities"].ConnectionString;
        using (SqlConnection con = new SqlConnection(consString))
        {
            using (SqlBulkCopy sqlBulkCopy = new SqlBulkCopy(con))
            {
                //Set the database table name.
                sqlBulkCopy.DestinationTableName = "dbo.BulkSent";
                con.Open();
                sqlBulkCopy.WriteToServer(dt);
                con.Close();
            }
        }
    }

    return 0;
}
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...