Avatar billede celinder Nybegynder
21. juli 2005 - 22:24 Der er 13 kommentarer og
1 løsning

læse en fil ud af en db

jeg indlæser en fil i en sql database ved hjælp af følgende:

If upfile.ContentLength <> Nothing Then

Dim StreamObject As Stream
            Dim FileLength As Integer = upfile.ContentLength
            Dim FileByteArray(FileLength) As Byte
            StreamObject = upfile.InputStream
            StreamObject.Read(FileByteArray, 0, FileLength)
            ' Store the fileLength stream in
            ' the SQL Server database
            Dim cmdInsertFile As SqlCommand
            SqlConnection1.Open()
            cmdInsertFile = New SqlCommand("procInsertFile", SqlConnection1)
            cmdInsertFile.CommandType = CommandType.StoredProcedure

            'strSQL2.Parameters.Add("@select", selectedValue)
            cmdInsertFile.Parameters.Add("@File", FileByteArray)
            cmdInsertFile.Parameters.Add("@ContentType", upfile.ContentType)
            cmdInsertFile.Parameters.Add("@ByteSize", FileLength)
            Dim myParm As SqlParameter

Dim test As Integer = CType(cmdInsertFile.ExecuteNonQuery(), Integer)

jeg bruger denne stored procedure til at udlæse filen:

ALTER PROC procInsertFile
  @File image,
  @ContentType varchar(50),
  @ByteSize int,
  @Identity int OUT
 
AS
  INSERT INTO UploadedFiles([File], ContentType, ByteSize)
  VALUES(@File, @ContentType, @ByteSize)


  SET @Identity = @@Identity
  return @@ROWCOUNT



hvordan læser jeg filen ud igen i asp.net


men jeg har lidt problemer med at udlæse filen igen, jeg er faktisk på bare bund
Avatar billede arne_v Ekspert
21. juli 2005 - 22:28 #1
du henter vel bare ud med en SELECT statement !?
Avatar billede celinder Nybegynder
21. juli 2005 - 22:28 #2
har du eksempel ?

hvad gør jeg så når filen skal vises ?
Avatar billede arne_v Ekspert
21. juli 2005 - 22:29 #3
kode snippet som ligner lidt:

        Dim sel As SqlCommand = New SqlCommand ("SELECT img FROM imgtest WHERE id = @id", con)
        sel.Parameters.Add("@id", SqlDbType.Int)
        sel.Parameters("@id").Value = 1
        Dim imgdata2 As Byte() = CType(sel.ExecuteScalar, Byte())
Avatar billede arne_v Ekspert
21. juli 2005 - 22:31 #4
Det du gør er at lade din vis.aspx generere HTML med:

<IMG SRC="vispic.aspx?id=127">

og så lader du din vispic.aspx:
  - sætte content-type til det rigtige
  - hente som vist ovenfor
  - skrive binært til response
Avatar billede celinder Nybegynder
21. juli 2005 - 22:32 #5
jeg vil lige prøve !
Avatar billede arne_v Ekspert
21. juli 2005 - 22:37 #6
kender du:

http://www.developerfusion.co.uk/show/3905/
http://www.developerfusion.co.uk/show/3933/

?

koden er i C# og ikke VB.NET, men teknikken må fremgå
Avatar billede celinder Nybegynder
21. juli 2005 - 22:49 #7
ok kigger på dem, kender dem ikke.......... jeg melder lige tilbage når jeg har prøvet det....

tak
Avatar billede celinder Nybegynder
22. juli 2005 - 00:17 #8
jeg kan godt li dit sidste link - det er godt......

men jeg gør jo alt mit i codebhind hvad gør jeg når jeg vil skrive binært i html filen så ?

skal jeg poste kode ?
Avatar billede celinder Nybegynder
22. juli 2005 - 00:34 #9
jeg har gjort således indtil videre:
får først fat i id nummer på filen
så henter jeg filen
Dim tes As String = "select * from UploadedFiles Where UploadID='" & reader2.Item(0) & "'"
lægger det i en datareader......

Dim dr As SqlDataReader = strSQL5.ExecuteReader()

så langt så godt, så er jeg gået i stå
Avatar billede celinder Nybegynder
22. juli 2005 - 01:57 #10
ok nu har jeg fået den til at gøre det med image......... men ligeså snart jeg uplaoder en teskt fil eller andet kan jeg ikke få den frem hvad gør jeg galt............ det må næsten være i min

Response.ContentType = dr.Item("ContentType").ToString()


eller ??
Avatar billede snepnet Nybegynder
22. juli 2005 - 09:28 #11
hvis du viser det på den måde :
<IMG SRC="vispic.aspx?id=127">
er det nok ikke så godt med andet end billeder .... hvis du vil vise forskellige slags filer skal du nok gøre det i et vindue for sig.

du kan også prøve at skifte <IMG ... > ud med sådan en her :
<IFRAME SRC="vispic.aspx?id=127"></IFRAME>

og se om det går.
mvh
Avatar billede arne_v Ekspert
22. juli 2005 - 09:35 #12
eller en god gammel <A HREF="vistxt.aspx?id=127">titel</A>
Avatar billede celinder Nybegynder
25. juli 2005 - 22:19 #13
jeg har brugt a href metoden, den gode gamle og det virker fint, tak for hjælpen, kommer du med svar ?

om ikke andet lærte jeg da lidt :-)
Avatar billede arne_v Ekspert
25. juli 2005 - 22:21 #14
ok
Avatar billede Ny bruger Nybegynder

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.

Loading billede Opret Preview
Kategori
IT-kurser om Microsoft 365, sikkerhed, personlig vækst, udvikling, digital markedsføring, grafisk design, SAP og forretningsanalyse.

Log ind eller opret profil

Hov!

For at kunne deltage på Computerworld Eksperten skal du være logget ind.

Det er heldigvis nemt at oprette en bruger: Det tager to minutter og du kan vælge at bruge enten e-mail, Facebook eller Google som login.

Du kan også logge ind via nedenstående tjenester