---
title: "System.Byte i databas --> lägg in bild"
type: "forum-thread"
url: "https://www.webforum.nu/amne/dotnet/135088-system-byte-i-databas-lägg-in-bild"
topic: ".NET"
topic_url: "https://www.webforum.nu/amne/dotnet"
author: "echoSwe"
published: "2005-10-01T19:06:36.000Z"
updated: "2005-10-01T23:06:18.000Z"
replies: 1
views: 227
page: 1
pages: 1
language: "sv-SE"
site: "webForum — webforum.nu"
rights: "Upphovsrätten till varje inlägg tillhör dess författare."
attribution: "Citera som: webForum, https://www.webforum.nu/amne/dotnet/135088-system-byte-i-databas-lägg-in-bild"
---

# System.Byte i databas --> lägg in bild

## #1 — echoSwe, 2005-10-01T19:06Z

Hej!

Jag har ett problem med min bild-applikation som ska lägga in en bild binärt i en databas. Jag vill lägga in en dataström från mitt webform. Dags att visa lite kod för hur det hela är skrivet:
Här är presentationslagrets kod:

```
		public string addImage(byte [] bBuffer, string strContentType, string strTitle, string strDesc) 
		{
			string strSql = "SELECT * FROM imageGallery";
			DataSet objDS = new DataSet();
			OleDbDataAdapter objDA = new OleDbDataAdapter(strSql, this._objConn);
			OleDbCommandBuilder objCommand = new OleDbCommandBuilder(objDA);
			objDA.Fill(objDS, "imageGallery");

			try 
			{
				this._objConn.Open();
				DataRow objDR = objDS.Tables["imageGallery"].NewRow();
				objDR["Title"] = strTitle; 
				objDR["Data"] = bBuffer;
				objDR["ContentType"] = strContentType;
				objDR["Description"] = strDesc;
				objDS.Tables["imageGallery"].Rows.Add(objDR);
				//try to update the table to add the image
				objDA.Update(objDS, "imageGallery");
			}
			catch (Exception ex){ return ex.Message; }
			finally { this._objConn.Close(); }
			return null;
		}
```

Databasen ser då ut såhär:

```
fileID	FileName	FileSize	Title	ContentType	Data			Description
5					Humla	image/jpeg	Långa binära data	My image description
```

Vilket är helt okej... Det betyder ju att min binära data har kommit in i databasen, precis som den ska. 
Sedan när jag försöker hämta en bild med den här funktionen (se nedan) så får jag felet:
 Exception Details: System.ArgumentNullException: Buffer cannot be null. Parameter name: buffer

Line 32: 
Line 33: 			byte\[\] buffer = objDAL.getImage(imgID);
Line 34: 			**System.IO.MemoryStream stream1 = new System.IO.MemoryStream(buffer, true);**    
Line 35: 			stream1.Write(buffer,0,buffer.Length);

Funktionen är:

```
		private void Page_Load(object sender, System.EventArgs e)
		{
			DataAccessLayer objDAL = new DataAccessLayer();
			int imgID;
			try 
			{
				imgID = int.Parse(Request.QueryString["id"]);
			}
			catch {
				imgID = 5;
			}

			byte[] buffer = objDAL.getImage(imgID);
			[b]System.IO.MemoryStream stream1 = new System.IO.MemoryStream(buffer, true);   [/b] 
			stream1.Write(buffer,0,buffer.Length);
			Bitmap m_bitmap = (Bitmap) Bitmap.FromStream(stream1,true);
			Response.ContentType = "image/jpeg";
			m_bitmap.Save(Response.OutputStream, System.Drawing.Imaging.ImageFormat.Jpeg);      
		}
```

Permalänk: https://www.webforum.nu/p/135088

## #2 — echoSwe, 2005-10-01T23:06Z

Löste problemet genom att bygga om strukturen helt och använda mig av en annan infallsvinkel.

Permalänk: https://www.webforum.nu/p/1680393

---

Tråden på webben: https://www.webforum.nu/amne/dotnet/135088-system-byte-i-databas-lägg-in-bild
