Чтение из CosmosDB и запись в Azure SQL - PullRequest
0 голосов
/ 12 декабря 2018

У меня есть функция Azure для чтения из БД Cosmos и записи в SQL.Поскольку я новичок в кодировании, мне немного трудно понять, как читать входящий документ.Я вижу, что документы отображаются на input :

        public static async Task Run([CosmosDBTrigger(
            databaseName: "ToDoList",
            collectionName: "Items",
            ConnectionStringSetting = "CosmosDB",
            LeaseCollectionName = "leases")]IReadOnlyList<Document> input, ILogger log)
        {
            if (input != null && input.Count > 0)
            { }

Я знаю, что должен прочитать документ и десериализовать его в объект C #, для которого у меня есть этот код (при условии, что онправильно):

Record resultRecord = JsonConvert.DeserializeObject<Record>(jsonString);

Я заблудился, как получить данные из документа json и записать их в объект C #.Соединительная часть сбивает меня с толку.

У меня также есть код SQL, и снова я не понимаю, как мне следует подключить мой объект C #, чтобы данные можно было читать и записывать в базу данных SQL.

                var cnnString = "sqlConnection";    // Connecting to Azure SQL Database

                using (var sqlConnection = new SqlConnection(cnnString))    // Start up sql connectin with connectionstring
                {
                    sqlConnection.Open();
                    var cmd = new SqlCommand
                    {
                        //Insert into command (used to insert data into a table)
                        CommandText = @"insert into [dbo].[Player] ([User] values(@User)",
                        CommandType = CommandType.Text,
                        Connection = sqlConnection,
                    };

                    var record = new Record();
                    //set parameters
                    cmd.Parameters.Add(new System.Data.SqlClient.SqlParameter("@User", record.Email));

                    await cmd.ExecuteNonQueryAsync(); 

Я не уверенесли это правильный способ задать вопрос о коде, но я ценю любую помощь.

1 Ответ

0 голосов
/ 13 декабря 2018

Если вы хотите получить данные из документа json, мы можем использовать файл Newtonsoft.Json.dll для анализа документа json.Я думаю, что вы можете изменить свой код следующим образом:

List<Info> jobInfoList = JsonConvert.DeserializeObject<List<Info>>(json);

А вот пример того, как получить данные из документации JSON:

class Program
    {
        static void Main(string[] args)
        {
            string json = @"[{'id':9527,'username':'admin'}]";
            List<Info> jobInfoList = JsonConvert.DeserializeObject<List<Info>>(json);

            foreach (Info jobInfo in jobInfoList)
            {
                Console.WriteLine("UserName:" + jobInfo.username);
            }
        }
    }

    public class Info
    {
        public string id { get; set; }
        public string username { get; set; }         
    }

Вы можете объявить переменные для полученияданные, которые вы хотите получить из строки json в foreach.Затем вы можете вставить эти данные в базу данных sql в качестве параметров.

Как подключиться к базе данных sql и записать данные в базу данных sql, вы увидите:

Быстрый запуск: использование .NET (C #) с Visual Studio для подключения и запроса базы данных SQL Azure https://docs.microsoft.com/en-us/azure/sql-database/sql-database-connect-query-dotnet-visual-studio#insert-code-to-query-sql-database

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