26. januar 2008 - 22:52Der er
13 kommentarer og 1 løsning
inserte image i db/dataset
Jeg har en database vor jeg har en billed tabel.
Den indeholder en Id (int) BilledData (image)
jeg prøver så at inserte i den men bliver ved med at få samme fejl
Jeg gør følgende:
' Load FileUpload's InputStream into Byte array Dim imageBytes(UploadFile.PostedFile.InputStream.Length) As Byte UploadFile.PostedFile.InputStream.Read(imageBytes, 0, imageBytes.Length) ' myCommand.Parameters.AddWithValue("@ImageData", imageBytes)
Dim Vareadaptor2 As New Insert_VareTableAdapters.Billed_dataTableAdapter Dim m2 As Integer m2 = Integer.Parse(Pris.Text) Dim test As Integer = Vareadaptor2.InsertQuery(imageBytes)
I dette særtema ser vi på, hvordan cloud og AI bliver fundamentet for virksomhedernes digitale forretning, og hvordan de nye muligheder for automatisering og forretningsværdi kan udnyttes uden at miste overblik, sikkerhed og menneskelig kontrol.
Dim imgfile As Stream = New FileStream ("C:\blue.jpg", FileMode.Open) Dim siz As Integer = imgfile.Length Dim imgdata(siz-1) As Byte imgfile.Read(imgdata, 0, imgdata.Length) imgfile.Close Dim ins As SqlCommand = New SqlCommand ("INSERT INTO imgtest VALUES(@id,@img)", con) ins.Parameters.Add("@id", SqlDbType.Int) ins.Parameters.Add("@img", SqlDbType.Image) ins.Parameters("@id").Value = 1 ins.Parameters("@img").Value = imgdata ins.ExecuteNonQuery
Efter min mening er det ikke smart med billeder gemt i databasen da dit dataset/array/list eller hvad du bruger med tiden vil blive voldsomt stort og da det er serveren der tager sig af det ville jeg vælge kun at ligge en sti i databasen og så lade clienten/browseren tage sig af at loade billedet, men det er jo bare min mening om det ;o)
Der har i mange år været været en opfattelse af at det var en katastrofe at putte billeder i databasen og at det var meget bedre at gemme billederne som filer og kun gemme stien i databasen.
Jeg tror ikke på at det gælder med database og computere af idag. Jeg har et par gange lavet noget test af det og performance ved billeder i database var acceptabel. Og det har klart administrative fordele.
Bedste argument idag for ikke at gøre det er web hoteller med 1GB diskplads men kun 5 MB database plads.
jeg bruger nu den anden metode med at gemme det i en folder.
Gør følgende:
Dim filepath As String = UploadFile.PostedFile.FileName Dim pat As String = "\\(?:.+)\\(.+)\.(.+)" Dim r As Regex = New Regex(pat) 'run Dim m2 As Match = r.Match(filepath) Dim file_ext As String = m2.Groups(2).Captures(0).ToString() Dim filename As String = m2.Groups(1).Captures(0).ToString() Dim file As String = filename & "." & file_ext
'save the file to the server UploadFile.PostedFile.SaveAs(Server.MapPath("..\UploadPhoto\") & file) ' lblStatus.Text = "File Saved to: " & Server.MapPath(".\") & file
BAre hvis der er en anden der en dag finder dette....
arne_v >> Jeg mener heller ikke det er en katastrofe, men jeg vedligeholder pt. en stor internet shop hvor vi har lavet nogle test på det, her er der tale om 5000+ produkter med hver 1 lille og 3 store billeder.
Og der er klart forskel i hastigheden på at loade billeder fra database kontra fra disk.
Jeg lavede bl.a. en lille test med 25 KB billeder.
Resultatet var:
File (1 threads): 1,9 get per second File (10 threads): 2,1 get per second File with web app cache (1 threads): 16,8 get per second File with web app cache (10 threads): 17,8 get per second File directly by web server (1 threads): 17,6 get per second File directly by web server (10 threads): 20,1 get per second Database (1 threads): 10,7 get per second Database (10 threads): 11,6 get per second Database with web app cache (1 threads): 17,1 get per second Database with web app cache (10 threads): 19,5 get per second
Synes godt om
Ny brugerNybegynder
Din løsning...
Tilladte BB-code-tags: [b]fed[/b] [i]kursiv[/i] [u]understreget[/u] Web- og emailadresser omdannes automatisk til links. Der sættes "nofollow" på alle links.