2013-03-26 11 views
5

Sto cercando di memorizzare un'immagine nel mio database SQL Server, quale tipo di dati dovrei usare?Posso usare il tipo varbinary per memorizzare l'immagine nel database di SQL Server?

Nel sottostante code aspx.cs, sto cercando di leggere tutti i byte dalla richiesta inputstream e di memorizzarlo nel database, ma l'array byte[] non viene aggiornato correttamente nella tabella. Mi sto perdendo qualcosa?

protected void Page_Load(object sender, EventArgs e) 
{ 
     Request.InputStream.Position = 0; 

     byte[] Contents = new byte[Request.InputStream.Length]; 

     Request.InputStream.Read(Contents, 0, (int)Request.InputStream.Length); 

     con.Open(); 

     try 
     { 
      string query = "update tblImageUpload set " + IMAGE_ID + " = @imageBytes where Image_ID='" + CID + "'"; 

      int i = 0; 

      using (cmd = new SqlCommand(query, con)) 
      { 
       cmd.Parameters.Add("@imageBytes", SqlDbType.VarBinary, Contents.Length).Value = Contents; 

       i = cmd.ExecuteNonQuery(); 
      } 

      Response.Write("Upload Query = " + query); 
      Response.Write("Upload Code = " + i); 
     } catch (Exception ex) { 
      Response.Write("Upload Code=" + ex); 
     } 
+0

'è possibile utilizzare varbinary (max)' dispiace errore di battitura – MethodMan

risposta

7

È possibile utilizzare VARBINARY sì. Probabilmente stai meglio con lo VARBINARY(MAX) per archiviarli.

Si può usare in questo modo:

cmd.Parameters.Add("@imageBytes", SqlDbType.VarBinaryMax); 
cmd.Parameters["@imageBytes"].Value = Contents; 
+0

Stavo cercando di utilizzare cast come operatore, ma lavoro a forza, ma query SQL con parametri grandi opere, è Non ci sono restrizioni sulla dimensione dell'immagine da caricare, ho circa 10 colonne di immagini in una tabella – deepak

+1

@deepak Beh, sarebbe limitato alla dimensione massima che 'VARBINARY' può contenere, che è 2^31-1 byte. A meno che tu non stia pianificando di memorizzare 2 gigapixel e immagini sopra, penso che starai bene :) – mattytommo

+0

@mattytommon grazie – deepak

Problemi correlati