在数据库表中存储blob字符串

本文关键字:blob 字符串 存储 数据库 | 更新日期: 2023-09-27 18:26:33

嗨,我是azure存储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;
    }
    }

在数据库表中存储blob字符串

您只需存储该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;

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

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