Avatar billede Hansen_ Praktikant
20. oktober 2017 - 23:29 Der er 4 kommentarer

C# SQL - gemme billede i sql.

halløj.

skal prøve at forklare.

er ganske ny indenfor c# og sql - men er nogenlunde kørende.

har brug for hjælp, til at gemme et jpg i min database.

pt - kan jeg fint browse billede, få det vist i min picturebox, men herfra mangler jeg at kunne gemme den i databasen, jeg har oprettet i min tabel "Billede" som binary(10) - min picturebox har også fat i den, så vidt jeg kan se under databindings.

min button, som jeg indlæser billedet med, ser sådan ud.
----------------------------------
private void button1_Click(object sender, EventArgs e)
        {
            OpenFileDialog openfd = new OpenFileDialog();
            openfd.Filter = "|*.jpg";
            DialogResult dr = openfd.ShowDialog();

            billedePictureBox.Image = Image.FromFile(openfd.FileName);
     
        }
-----------------------------------

føler bare lidt jeg mangler en gem funktion.

for når programmet er åbent, kan jeg godt "hæfte" billedet til og markere andet, hvorefter billedet stadig er der når jeg vender retur. bare ikke hvis jeg exit programmet.

Ved feedback, gerne hold det i begynder niveau og simpelt hvis det kan.

takker for al feedback og hjælp. :)

go easy on me :P

//Hansen.
Avatar billede arne_v Ekspert
21. oktober 2017 - 01:14 #1
Code snippet:


            SqlConnection con = new SqlConnection(CONNSTR);
            con.Open();
            SqlCommand cre = new SqlCommand("CREATE TABLE od (id INTEGER PRIMARY KEY, pic IMAGE)", con);
            cre.ExecuteNonQuery();
            SqlCommand ins = new SqlCommand("INSERT INTO od VALUES (@id, @pic)", con);
            ins.Parameters.Add("@id", SqlDbType.Int);
            ins.Parameters.Add("@pic", SqlDbType.Image);
            ins.Parameters["@id"].Value = idforpic;
            ins.Parameters["@pic"].Value = bytesofpic;
            ins.ExecuteNonQuery();
            con.Close();
Avatar billede Hansen_ Praktikant
21. oktober 2017 - 12:42 #2
Tak for svar Arne.

Men lige med denne snippet, kan jeg godt se at jeg falder lidt af på den.

køre den i VS - med en WPA. umiddelbart ligner snippet noget consol?

igen, jeg er ikke super stærk i c#, men arbejder på det.

Kan der findes en nemmere løsning somehow?

jeg kan fint gemme tekst og andet i min database, det er "bare" billeder, når de er browsed, at de så kan gemmes i databasen.

ved ikke helt hvad det kræver for at hjælpe jer/mig med at finde en løsning.

har googlet en masse, men lige den del, bliver lige en udfordring nok på nuværende tidspunkt.
Avatar billede arne_v Ekspert
21. oktober 2017 - 16:25 #3
Dem kode snippet er ren ADO.NET i C# uafhaengig af applikations type. CREATE TABLE er nok ikke noedvendig.

Men hvis du viser hvordan du gemmer tekst, saa kan jeg muligvis vise gem af billede paa samme maade.
Avatar billede Hansen_ Praktikant
21. oktober 2017 - 18:19 #4
jeg poster min del af koden, hvor jeg har en knap, som tilføjer og gemmer i databasen. :)
-------------------------------------------------------
        private void Form1_Load(object sender, EventArgs e)
        {
         
            this.babyinfoTableAdapter.Fill(this.babysqlDataSet.babyinfo);
         
        }

        // Tilføjer ny indsættelse.

        private void BtnTilfojNy_Click(object sender, EventArgs e)
        {
            this.babyinfoBindingSource.AddNew();
        }

        // Gemmer data

        private void BtnGem_Click(object sender, EventArgs e)
        {
            try
            {
                babyinfoBindingSource.EndEdit();
                babyinfoTableAdapter.Update(this.babysqlDataSet.babyinfo);
                MessageBox.Show("Data gemt", "Data gemt", MessageBoxButtons.OK, MessageBoxIcon.Information);

            }
            catch (Exception ex)
            {
                MessageBox.Show(ex.Message, "Fejl", MessageBoxButtons.OK, MessageBoxIcon.Error);
            }
        }

---------------------------------------------------------------
info ::

tabel :: babyinfo

dataset :: babysqlDataSet

---------------------------------------------------------------
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

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