Вставка данных CSV в базу данных SQL Azure после создания функции для чтения данных CSV? - PullRequest
0 голосов
/ 17 сентября 2018

Я создал функцию Azure (триггер Http), которая считывает данные из файла CSV через HttpRequestMessage.Чтобы показать вам мой код читателя, я включил его в это сообщение.

public static async Task<HttpResponseMessage> Run([HttpTrigger(AuthorizationLevel.Function, "post", Route = null)] HttpRequestMessage req, TraceWriter log) {
try
        {
            // This will read the CSV Data
            var multipart = await req.Content.ReadAsMultipartAsync();
            // This gets CSV names
            foreach (var content in multipart.Contents)
            {
                using (StreamReader sr = new StreamReader(await content.ReadAsStreamAsync()))
                {
                    string line;
                    while ((line = sr.ReadLine()) != null)
                    {
                        log.Info(line);
                    }
                }
            }
         }

Я могу проверить, загрузив файл CSV в почтальон и нажав конечную точку, чтобы получить ответ, включающий все данные изCSV.Я создал базу данных SQL Azure, которая также отражает все связи таблиц.Теперь я хотел бы записать данные, считываемые из этой функции, в соответствующие таблицы.Я не знаю, возможно ли это сделать в той же функции Azure.

Спасибо за любую помощь!

1 Ответ

0 голосов
/ 17 сентября 2018

Попробуйте адаптировать следующий код для вашей функции:

    var cnnString  = ConfigurationManager.ConnectionStrings["SqlConnection"].ConnectionString;

    using(var connection = new SqlConnection(cnnString))
    {
        connection.Open();


        // You read your CSV
        var rLog = await req.Content.ReadAsAsync<LogRequest>();
        connection.Execute("INSERT INTO [dbo].[LogRequest] ([Log]) VALUES (@Log)", rLog);

    }
...