0

嗨,我是天蓝色存储 blob 的新手。我在 WPF 中有一个项目,并且在 azure 存储 blob 中创建了一个容器,我可以在单击按钮时将图像发送/上传到。谁能告诉我是否可以将 blob 中的字符串存储到我的 sql 数据库中,这将允许我访问/使用/显示我的 WPF 项目中的图像。

也许有人可以指导我举个例子!谢谢!

    private void btnSAVE_Click(object sender, RoutedEventArgs e)
    {
        try
        {
            byte[] photo = GetPhoto(filePath);

            sc.Open();
            cmd = new SqlCommand("Insert into Rewards (Name, Picture,  ) values'" + txtName.Text+ "','" + txtPicture.Text + "')", sc);

            cmd.Parameters.Add("@Picture", SqlDbType.Image, photo.Length).Value = photo;


            cmd.ExecuteNonQuery();
            MessageBox.Show("Inserted");

            sc.Close();
        }
        catch (Exception ex)
        {
            MessageBox.Show(ex.Message);
        }
        displayAll();

    }

    private byte[] GetPhoto(string filePath)        {
              {
        FileStream fs = new FileStream(filePath, FileMode.Open, FileAccess.Read);
        BinaryReader br = new BinaryReader(fs);

        byte[] photo = br.ReadBytes((int)fs.Length);

        br.Close();
        fs.Close();

        return photo;
    }
    }
4

2 回答 2

1

您可以只存储该 blob 的 URL 并使用该 URL 来显示图像

CloudBlockBlob blockBlob = new CloudBlockBlob();
using (var fileStream = System.IO.File.OpenRead(path + "/" + up.GetName().ToString()))
{
      blockBlob.UploadFromStream(fileStream);
}
string URL = blockBlob.Uri.OriginalString;
于 2013-08-09T06:29:11.107 回答
0

请参阅此链接将 BLOB 值写入数据库。来自 MSDN:

要将 BLOB 值写入数据库,请发出适当的 INSERT 或 UPDATE 语句并将 BLOB 值作为输入参数传递。如果您的 BLOB 存储为文本,例如 SQL Server 文本字段,则可以将 BLOB 作为字符串参数传递。如果 BLOB 以二进制格式存储,例如 SQL Server 图像字段,则可以将字节类型的数组作为二进制参数传递。

于 2013-08-04T19:30:40.987 回答