2013-08-04 76 views
0

嗨,我是新来azure存储blob。我在WPF中有一个项目,并且我已经在Azure存储区创建了一个容器,我可以在单击按钮时发送/上传图像。任何人都可以告诉我,如果我可以将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; 
    } 
    } 

回答

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; 
0

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

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

相关问题