2013-08-04 114 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映像字段)存儲,則可以將 類型字節數組作爲二進制參數傳遞。

相關問題