无法将多个Azure Blob内容(文本和图像)上传到Azure SQL表

时间:2018-06-28 12:16:34

标签: azure xamarin.forms azure-sql-database azure-storage-blobs

目前,我只能使用以下触发器上传一个blobtype(文本)

#r "System.Configuration"
#r "System.Data"
using System.Configuration;
using System.Data.SqlClient;
using System.Threading.Tasks;
using System;

public static void Run(Stream myBlob, string name, TraceWriter log)
{
    log.Info($"C# Blob trigger function Processed blob\n Name:{name} \n Size: {myBlob.Length} Bytes");
    string detail = ($"{name}");


    var str = ConfigurationManager.ConnectionStrings["sqldb_connection"].ConnectionString;
    using (SqlConnection conn = new SqlConnection(str))
    {
        conn.Open();
  var text = "INSERT INTO PhotoTable(CreatedAt,UpdatedAt,IsDeleted, Url, Title) " +
           "VALUES (SYSDATETIMEOFFSET(),SYSDATETIMEOFFSET(), 'true', 'yrhrh', @Name)";
        using (SqlCommand cmd = new SqlCommand(text, conn))
        {
            cmd.Parameters.AddWithValue("@Name", name);
            // Execute the command and log the # rows affected.
            var rows = cmd.ExecuteNonQueryAsync();
            log.Info($"{rows} rows were updated");
        }
    }
}

有2个问题 01)我可以同时上传两种类型以使SQLstorage蔚蓝化的任何方式(例如text blob和image blob)

02)使用此触发器,我仅获得Blob存储的ID而不是内容,那也是一个问题,即它们以任何方式也可以获取Blob存储的内容? ,

我们将非常感谢您的帮助,谢谢

1 个答案:

答案 0 :(得分:0)

1)可以使用SSIS将各种类型的文件上传到Azure SQL。以下视频tutorial向您逐步介绍了操作方法

2)第二个,您可以使用 OPENROWSET ,解析存储在Blob存储中的文件,并以一组行的形式返回文件的内容 下面的示例显示了一个BULK INSERT命令,该命令将文件的内容加载到SQL数据库中:

BULK INSERT Product
FROM 'data/product.dat'
WITH ( DATA_SOURCE = 'MyAzureBlobStorageAccount');

可以找到更多信息here