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

时间:2013-08-04 19:25:53

标签: c# wpf azure-storage-blobs

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

2 个答案:

答案 0 :(得分: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;

答案 1 :(得分:0)

请参阅此链接Writing BLOB values to a database。 来自MSDN:

  

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