嗨,我是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;
}
}
答案 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作为二进制参数。