Avatar billede blod_1 Nybegynder
03. marts 2010 - 21:23 Der er 8 kommentarer og
1 løsning

Gemme billede i MySQL

Jeg er igang med at lave en lille ting som kun skal have til funktion at kunne uploade et billede, men jeg hænger fast ved at få læst billedet, og så overført det til databasen

using System;
using System.Text;
using System.Data;
using System.IO;
using System.Threading;
using System.Data.SqlClient;

namespace pic2mysql
{
    class Program
    {
        static void Main(string[] args)
        {
            string zFile = "C://Users//Parx//Documents//Visual Studio 2010//Projects//pic2mysql//pic2mysql//bin//Debug//test.jpg";
            if (File.Exists(zFile))
            {
                FileStream fs = new FileStream(zFile, FileMode.Open, FileAccess.Read);
                BinaryReader reader = new BinaryReader(fs);

                byte[] BlobValue = reader.ReadBytes((int)fs.Length);

                fs.Close();
                reader.Close();

                MySql.Data.MySqlClient.MySqlConnection conn;
                MySql.Data.MySqlClient.MySqlCommand cmd;

                conn = new MySql.Data.MySqlClient.MySqlConnection();
                cmd = new MySql.Data.MySqlClient.MySqlCommand();

                string myquerystring;
                myquerystring = "INSERT INTO mrtg (varName, image) VALUES('blaaah', 'hvad faen skal der ind her?')";

                conn.ConnectionString = "server=address;uid=root;pwd=password;database=dbname;";

                try
                {
                    conn.Open();
                    cmd.Connection = conn;
                    cmd.CommandText = myquerystring;
                    cmd.ExecuteNonQuery();
                    conn.Close();
                }
                catch (Exception e)
                {
                    Console.WriteLine("Error: " + e);
                    Thread.Sleep(5000000);
                }
                reader.Close();
                Console.WriteLine("Done");
                Thread.Sleep(1000);
            }
            else
            {
              Console.WriteLine("File not found");
                Thread.Sleep(5000);
            }
        }
    }
}
Avatar billede arne_v Ekspert
03. marts 2010 - 21:34 #1
Et ord:

parameters
Avatar billede arne_v Ekspert
03. marts 2010 - 21:36 #2
MySqlCommand ins = new MySqlCommand("INSERT INTO od VALUES (?id, ?pic)", con);
ins.Parameters.Add("?id", MySqlDbType.Int32);
ins.Parameters.Add("?pic", MySqlDbType.Blob);
ins.Parameters["?id"].Value = id;
ins.Parameters["?pic"].Value = ba;
ins.ExecuteNonQuery();
Avatar billede arne_v Ekspert
03. marts 2010 - 21:37 #3
Du bruger så et navn og ikke et numerisk id, men forskellen er ens.
Avatar billede blod_1 Nybegynder
03. marts 2010 - 21:37 #4
Ja
Avatar billede blod_1 Nybegynder
03. marts 2010 - 21:38 #5
hov, var et andet sted... Det prøver jeg lige at rode videre med
Avatar billede blod_1 Nybegynder
03. marts 2010 - 22:01 #6
Så fik jeg den måde til at fungere istedet, men jeg har så stadig problemet med den du kalder 'ba', hvor jeg ikke ved hvad det egentligt er den gerne vil have der. Selvfølgelig selve billedet, men hvordan den vil have det.
Avatar billede arne_v Ekspert
04. marts 2010 - 00:23 #7
ba er et byte array - det som i din kode hedder BlobValue.
Avatar billede blod_1 Nybegynder
04. marts 2010 - 02:07 #8
Perfekt, så fik jeg det til at virke, og fik også lavet så den kan opdatere hvis den allerede eksisterer i databasen. Fik også smidt oven i så den kan læse hvilken type fil det er, sådan så asp filen der skal vise det senere ved hvad den har med at gøre. :)

Tak for hjælpen! :) Smider du et svar?
Avatar billede arne_v Ekspert
26. april 2010 - 03:40 #9
kommer her
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