在数据库表中存储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的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作为二进制参数。