Questione : Immagazzinare la lima nel mysql using connector.net ed il campo della chiazza

Ciao, il
I che lavora ad un progetto dove devo immagazzinare le immagini in un campo della CHIAZZA nel mio MySql database.
I sto provando i lotti dei modi diversi di conservazione dell'allineamento che di byte genero come chiazza nella base di dati, ma io conclude sempre in su ottenere questo errore o simile:
" avete un errore in vostra sintassi di SQL; controllare il manuale che corrisponde alla vostra versione dell'assistente di MySQL per la giusta sintassi ad uso vicino “ä del é ³ \ “¿ del ü_ del ¿ ól6? ) \ 0 ír ¹ D del ¿ Ï del RÌÁ di S 7~ (óù \ \ lw del ¿ di ËÞPì del ¿ del ¸£rÁÁ del ¿ v/ ¢hnfP7 ³ ¼ L§S del ¿ mx®òMÓ´„ alla linea 1 " il

I hanno passare parecchie ore che provano ogni frammento che di codice e di esempio ho trovato la ricerca intorno ma mi concludo sempre in su con lo stesso ambiente di problem.

My sono: uso della Tabella I dell'assistente 5.0.67
mysql-connector-net-6.2.3

Database di
VS 2010
MySql: DIFETTO CHARSET=latin1 di ENGINE=InnoDB AUTO_INCREMENT=5 della lima di TABELLA di

CREATE (smallint del file_id del
(5) il auto_increment NON NULLO senza firma, POSIZIONI DI SEGNALE MINIMO varchar di difetto del file_name del
(le 64), il
file_size il mediumint (8) POSIZIONE DI SEGNALE MINIMO senza firma di difetto, il mediumblob della lima del
, il
di CHIAVE PRIMARIA del
(file_id)); il

I ha provato ad immagazzinare una lima nella stessa tabella come sto provando ad usare da VB.net using il MySql QueryBrowser e quel impianti, in modo da sappiamo che ci è niente male con il MySql Server.

I ha attaccato l'immagine usata quando ottiene il messaggio di errore qui sopra e la funzione che uso esattamente come are.
Picture hanno usato: nome di schedario„ " vuoto " >

(741 byte) il Javascript„ del href= " " dei attachmentDetails del class= di (tipo di lima particolari) larghezza dello style= del >
Picture ha usato quando ottengono: 82px; altezza: 58px; il alt= " di http://filedb.experts-exchange.com/incoming/2010/05_w22/t310618/sample.png "„ dello src= un class= " di 310618 "/>


Code del >
1 del >

Private codeBody WriteFileToDb secondario (strFileName " del prettyprint " " del class= del id= " codeSnippet671035 del >

Has chiunque di

Very riconoscente per alcuno aiuto… : -)
class= del

Risposta : Immagazzinare la lima nel mysql using connector.net ed il campo della chiazza

Ho fatto una prova in cui ho cambiato il campo della CHIAZZA a LONGTEXT ed invece di prova di immagazzinare l'allineamento di byte, io converto l'allineamento in stringa Base64. Ciò ha funzionato per un certo motivo sconosciuto e con quello posso sia immagazzinare che lime della lettura dalla base di dati.

Tuttavia, non so se metterla in codice a base64 è il migliore senso di fare questo e ritiene più come un'azione alternativa che una buona soluzione. Ho attaccato il mio nuovo codice qui ed eventualmente qualcuno può darmi un suggerimento su perché la CHIAZZA non funziona per me.

1:
2:
3:
4:
5:
6:
7:
8:
9:
10:
11:
12:
13:
14:
15:
16:
17:
18:
19:
20:
21:
22:
23:
24:
25:
26:
27:
28:
29:
30:
31:
32:
33:
34:
StoreFileInDb secondario riservato (strFileName di ByVal come strFilePath di ByVal, della stringa come stringa)
        FileSize fioco come UInt32
        rawData fioco () come byte
        Fs fioco come FileStream
        Collegamento fioco come nuovo MySqlConnection
        Lo strSql fioco come stringa = “SELEZIONA * A PARTIRE dalla lima„
        Ds fioco come nuovo gruppo di dati (“FileStore„)
        tempAP fioco come nuovo MySqlDataAdapter (strSql, collegamento)
        objCommand fioco come nuovo MySqlCommandBuilder (tempAP)

        connection.ConnectionString = sConnString

        fs = nuovo FileStream (strFilePath, FileMode.Open, FileAccess.Read)
        FileSize = fs. Lunghezza - 1

        rawData = nuovo byte (FileSize) {}
        fs. Colto (rawData, 0, FileSize)
        fs. Chiuder ()

        tempAP.Fill (ds, “lima„)
        Prova
            collegamento. Aprir ()
            Oscurare il objNewRow come DataRow = ds. Pospone (“lima„) .NewRow ()
            objNewRow (“file_name„) = strFileName
            objNewRow (“file_size„) = rawData.Length
            objNewRow (“lima„) = Convert.ToBase64String (rawData)
            ds. Tabelle (“lima„). Rows.Add (objNewRow)
            tempAP.Update (ds, “lima„)
        Fermo ex come eccezione
            Oscurare la traccia come nuovo System.Diagnostics.StackTrace (ex, allineare): WriteLogFile (System.Reflection.MethodBase.GetCurrentMethod.Name & “- Undermetod: „ & trace.GetFrame (1).GetMethod (). Nome, “errore, rad: „ & trace.GetFrame (1).GetFileLineNumber () & “Kolumn: „ & trace.GetFrame (1).GetFileColumnNumber (), ex. Messaggio)
        Infine
            collegamento. Chiuder ()
        Concludere la prova
    Concludere il sommergibile
Altre soluzioni  
 
programming4us programming4us