Fetstil Fetstil Kursiv Understrykning linje färgläggning tabellverk Punktlista Nummerlista Vänster Centrerat högerställt Utfyllt Länk Bild htmlmode
  • Forum & Blog
    • Forum - översikt
      • .Net
        • asp.net generellt
        • c#
        • vb.net
        • f#
        • silverlight
        • microsoft surface
        • visual studio .net
      • databaser
        • sql-server
        • databaser
        • access
        • mysql
      • mjukvara klient
        • datorer och komponenter
        • nätverk, lan/wan
        • operativsystem
        • programvaror
        • säkerhet, inställningar
        • windows server
        • allmänt
        • crystal reports
        • exchange/outlook
        • microsoft office
      • mjukvara server
        • active directory
        • biztalk
        • exchange
        • linux
        • sharepoint
        • webbservers
        • sql server
      • appar (win/mobil)
      • programspråk
        • c++
        • delphi
        • java
        • quick basic
        • visual basic
      • scripting
        • asp 3.0
        • flash actionscript
        • html css
        • javascript
        • php
        • regular expresssion
        • xml
      • spel och grafik
        • DirectX
        • Spel och grafik
      • ledning
        • Arkitektur
        • Systemutveckling
        • krav och test
        • projektledning
        • ledningsfrågor
      • vb-sektioner
        • activeX
        • windows api
        • elektronik
        • internet
        • komponenter
        • nätverk
        • operativsystem
      • övriga forum
        • arbete karriär
        • erbjuda uppdrag och tjänster
        • juridiska frågor
        • köp och sälj
        • matematik och fysik
        • intern information
        • skrivklåda
        • webb-operatörer
    • Posta inlägg i forumet
    • Chatta med andra
  • Konto
    • Medlemssida
    • Byta lösenord
    • Bli bonsumedlem
    • iMail
  • Material
    • Tips & tricks
    • Artiklar
    • Programarkiv
  • JOBB
  • Student
    • Studentlicenser
  • KONTAKT
    • Om pellesoft
    • Grundare
    • Kontakta oss
    • Annonsering
    • Partners
    • Felanmälan
  • Logga in

Hem / Forum översikt / inlägg

Posta nytt inlägg


Problem med att lagra och hämta bilder ur databas

Postades av 2006-08-06 21:49:01 - Mikael Gidmark, i forum asp.net generellt, Tråden har 0 Kommentarer och lästs av 523 personer

Jag använder C++.NET (v2), med enAccess 2003 databas
aImage fältet i tblProducts är ett ActiveX fält

Jag klistrar in berörda funktioner

Från databas klass:
	void Database::AddProducts(array<String^> ^images, String ^category){
		this->dbConn->Open();
		OleDbCommand ^dbComm = gcnew OleDbCommand();
		dbComm->Connection = this->dbConn;
		String ^sql;
		int idtblProducts;
		FileInfo ^fileinfo;
		array<Byte> ^filedata;
		MemoryStream ^ms;
		OleDbParameter ^param;
		Image ^image;
		
		sql = "SELECT idtblCategories FROM tblCategories WHERE sCategory = '"+ category +"'";
		dbComm->CommandText = sql;
		int idtblCategories = (int)dbComm->ExecuteScalar();

		sql = "SELECT idtblLanguages FROM tblLanguages WHERE sLanguageCode = '"+ this->currentLang +"'";
		dbComm->CommandText = sql;
		int idtblLanguages = (int)dbComm->ExecuteScalar();
		for(int i=0;i<images->Length;i++){
			fileinfo = gcnew FileInfo(images[i]);
			image = Image::FromFile(images[i]);
			ms = gcnew MemoryStream();
			image->Save(ms,Imaging::ImageFormat::Bmp);
			filedata = ms->ToArray();
			ms->Close();
			sql = "INSERT INTO tblProducts"
					" (aImage,sProduct,tblCategories_idtblCategories)"
					" VALUES('?','"+ fileinfo->Name +"',"+ idtblCategories +")";
			dbComm->CommandText = sql;
			param = dbComm->Parameters->Add("aImage", OleDbType::Binary);
			param->Value = filedata;
			param->Size = filedata->Length;
			dbComm->ExecuteNonQuery();

			dbComm->CommandText = "SELECT @@IDENTITY";
			idtblProducts = (int)dbComm->ExecuteScalar();

			sql = "INSERT INTO tblLocalizedProducts"
				" (tblProducts_idtblProducts, tblLanguages_idtblLanguages, sProductLocalized)"
				" VALUES("+ idtblProducts +","+ idtblLanguages +",'"+ fileinfo->Name +"')";
			dbComm->CommandText = sql;
			dbComm->ExecuteNonQuery();
		}

		this->dbConn->Close();
	}

	DataSet ^Database::GetProducts(String^ category){
		this->dbConn->Open();
		OleDbCommand ^dbComm = gcnew OleDbCommand();
		dbComm->Connection = this->dbConn;
		String ^sql = "SELECT lp.sProductLocalized, lp.sDescriptionLocalized, p.aImage "
				"FROM tblProducts p, tblCategories c, tblLanguages l, tblLocalizedProducts lp "
				"WHERE p.tblCategories_idtblCategories = c.idtblCategories"
				" AND p.idtblProducts = lp.tblProducts_idtblProducts"
				" AND l.idtblLanguages = lp.tblLanguages_idtblLanguages"
				" AND l.sLanguageCode = '"+ this->currentLang +"'"
				" AND c.sCategory = '"+ category +"'";
		dbComm->CommandText = sql;
		OleDbDataAdapter ^dbAdapter = gcnew OleDbDataAdapter(dbComm);	
		DataSet ^dsData = gcnew DataSet();
		dbAdapter->Fill(dsData);
		this->dbConn->Close();
		return dsData;
	}


Från "klient" klass
	private: void MakeTabbedCategories(void){
				ArrayList ^arrCategories = this->db->GetCategories();
				TabPage ^tmpTab;
				ListView ^tmpList;
				ListViewItem ^tmpListItem;
				ImageList ^tmpImageList;
				DataSet^ dsProducts;
				IEnumerator ^rowEnum;
				DataRow ^row;
				array<Byte> ^imagedata;
				MemoryStream ^ms;
				Image ^tmpImg;

				this->tabControlMain->TabPages->Clear();
				for each(String ^category in arrCategories){
					tmpTab = gcnew TabPage();
					tmpTab->Text = category;
					tmpTab->UseVisualStyleBackColor = true;
					
					tmpList = gcnew ListView();
					tmpList->BorderStyle = BorderStyle::None;
					tmpList->Location = Point(0,0);
					tmpList->Size = Drawing::Size(760, 378);
					tmpList->UseCompatibleStateImageBehavior = false;
					tmpList->View = View::LargeIcon;
					tmpImageList = gcnew ImageList();
					dsProducts = this->db->GetProducts(category);
					rowEnum = dsProducts->Tables[0]->Rows->GetEnumerator();
					while(rowEnum->MoveNext()){
						row = (DataRow^)(rowEnum->Current); 
						imagedata = (array<Byte>^)row["aImage"];
						ms = gcnew MemoryStream(imagedata);
						tmpImg = Image::FromStream(ms);
						tmpImageList->Images->Add(row["sProductLocalized"]->ToString(), tmpImg);
						ms->Close();
						tmpListItem = gcnew ListViewItem();
						tmpListItem->Text = row["sProductLocalized"]->ToString();
						tmpListItem->ImageKey = row["sProductLocalized"]->ToString();
						tmpList->Items->Add(tmpListItem);

					}
					tmpList->LargeImageList = tmpImageList;
					tmpTab->Controls->Add(tmpList);
					this->tabControlMain->TabPages->Add(tmpTab);
				}
			}


Problemet ligger på raden :
						tmpImg = Image::FromStream(ms);

Kompilatorn säger att "parameter is not valid".
All hjälp är hjärtligt välkommen. Tack.


Svara

Nyligen

  • 09:09 Vill du köpa medicinska tester?
  • 12:47 Vem beviljar assistansen – kommune
  • 14:17 Någon med erfarenhet av hemstädnin
  • 14:14 Bör man använda sig av en båtförme
  • 14:12 Finns det någon intressant hundblo
  • 14:25 Tips på verktyg för att skapa QR-k
  • 14:23 Tips på verktyg för att skapa QR-k
  • 20:52 Fungerer innskuddsbonuser egentlig

Sidor

  • Hem
  • Bli bonusmedlem
  • Läs artiklar
  • Chatta med andra
  • Sök och erbjud jobb
  • Kontakta oss
  • Studentlicenser
  • Skriv en artikel

Statistik

Antal besökare:
Antal medlemmar:
Antal inlägg:
Online:
På chatten:
4 569 601
27 953
271 705
4 385
0

Kontakta oss

Frågor runt konsultation, rådgivning, uppdrag, rekrytering, annonsering och övriga ärenden. Ring: 0730-88 22 24 | pelle@pellesoft.se

© 1986-2013 PelleSoft AB. Last Build 4.1.7169.18070 (2019-08-18 10:02:21) 4.0.30319.42000
  • Om
  • Kontakta
  • Regler
  • Cookies