C# kép feltöltése MySQL-be picit egyszerűbben.
2009-06-06T21:27:08+02:00
2013-03-12T14:12:54+01:00
2022-07-23T14:06:18+02:00
  • Ez a kód picit összekuszálódott, ezért ha még valakit érdekelne:

    using System; using System.Collections.Generic; using System.ComponentModel; using System.Data; using System.Drawing; using System.Text; using System.Windows.Forms; using System.Threading; using System.IO; using MySql.Data.MySqlClient; using MySql.Data.Types; //http://google.com/codesearch/p?hl=en#f9cd8CGa5WU/MySql.Data/Tests/Source/BlobTests.cs&q=mysql%20insert%20image%20create%20table%20lang:c%23 namespace Kepek { public partial class Form1 : Form { MySql.Data.MySqlClient.MySqlConnection conn; MySql.Data.MySqlClient.MySqlCommand cmd; string SQL; public Form1() { InitializeComponent(); conn = new MySql.Data.MySqlClient.MySqlConnection(); cmd = new MySql.Data.MySqlClient.MySqlCommand(); //conn.ConnectionString = "server=127.0.0.1;uid=root;" + "pwd=mysql;database=test;"; } private void button1_Click(object sender, EventArgs e) { //"Server=localhosr:3306;Database=Mydb;User ID=root;Password=xxxx;CharSet=utf8" //server=192.168.2.9;user id=kakuk;database=new_db1 //MySqlConnection connection = new MySqlConnection(connBuilder.ConnectionString); conn = new MySqlConnection(ConnBild()); MySqlCommand cmd = conn.CreateCommand(); conn.Open(); // Here goes the code needed to perform operations on the try { SQL = "INSERT INTO kepek1 VALUES(?id, ?Neve, ?wKep1, ?wKep2)"; FileStream fs = new FileStream("D:\Beach_Plant.jpg", FileMode.Open, FileAccess.Read); BinaryReader br = new BinaryReader(fs); byte[] photo = br.ReadBytes((int)fs.Length); br.Close(); fs.Close(); cmd.CommandText = SQL; cmd.Parameters.AddWithValue("?id", 2); cmd.Parameters.AddWithValue("?Neve", "Beach_Plant"); cmd.Parameters.AddWithValue("?wKep1", photo); cmd.Parameters.AddWithValue("?wKep2", photo); cmd.ExecuteNonQuery(); MessageBox.Show("Image Inserted into database successfully!", "Success!", MessageBoxButtons.OK, MessageBoxIcon.Asterisk); } catch (MySql.Data.MySqlClient.MySqlException ex) { MessageBox.Show("Error " + ex.Number + " has occurred: " + ex.Message, "Error", MessageBoxButtons.OK, MessageBoxIcon.Error); } //conn.Close(); // database such as querying or inserting rows into a table conn.Close(); } //http://forums.mysql.com/read.php?38,70279,70486#msg-70486 <= insert/select image private void Form1_Load(object sender, EventArgs e) { } private void button2_Click(object sender, EventArgs e) { //"Server=localhosr:3306;Database=Mydb;User ID=root;Password=xxxx;CharSet=utf8" //server=192.168.2.9;user id=kakuk;database=new_db1 //conn = new MySqlConnection(connBuilder.ConnectionString); conn = new MySqlConnection(ConnBild()); MySqlCommand cmd = conn.CreateCommand(); conn.Open(); SQL = "SELECT Megnevezes,Kep1 FROM kepek1 WHERE Tid = 1"; cmd.CommandText = SQL; MySqlDataReader reader; try { reader = cmd.ExecuteReader(); if (reader.Read()) { Image wkep = null; if (reader["kep1"] != DBNull.Value) { MemoryStream ms = new MemoryStream((byte[])reader["kep1"]); wkep = Image.FromStream(ms); pictureBox1.SizeMode = PictureBoxSizeMode.StretchImage; pictureBox1.Image = wkep; } string wMegnevezes = reader["Megnevezes"] as string; lblKep.Text = wMegnevezes; reader.Close(); } else reader.Close(); } catch (MySql.Data.MySqlClient.MySqlException ex) { MessageBox.Show("Error " + ex.Number + " has occurred: " + ex.Message, "Error", MessageBoxButtons.OK, MessageBoxIcon.Error); } conn.Close(); } public string ConnBild() { MySqlConnectionStringBuilder connBuilder = new MySqlConnectionStringBuilder(); connBuilder.Add("server", "192.168.2.9"); connBuilder.Add("Database", "new_db1"); //connBuilder.Add("Data Source", "localhost"); connBuilder.Add("User Id", "kakuk"); connBuilder.Add("Password", "kakuk"); var connstr = connBuilder.ConnectionString; return connstr; } private void button3_Click(object sender, EventArgs e) { System.Reflection.Assembly thisExe; thisExe = System.Reflection.Assembly.GetExecutingAssembly(); System.IO.Stream file = thisExe.GetManifestResourceStream("Kepek.Beach_Plant.jpg"); this.pictureBox1.Image = Image.FromStream(file); } }
    Mutasd a teljes hozzászólást!
  • hello!

    Elég régen írtad ezt a hozzászólást de hátha tudnál nekem segíteni.
    Igazából nem konkrétan a képfeltöltés érdekel hanem csak az hogy hogyan kell adatokat tölteni mysql-be C#-al.
    Félig meddig világos, de mikor INSERT INTO-t futtatok hibát ír ki. Valami olyasmit, hogy nem egyezik az oszlopszám.
    Tudnál segíteni?

    előre is köszi.

    üdv
    Zoli


    Bocsi! Közben megoldódott.

    Én voltam a hülye
    Mutasd a teljes hozzászólást!
  • Üdv. Mindenkinek!

    Hasonló címmel kreált topik volt nemrég a Tudástárban, de törlődött. Az okát nem tudom, de nem is bánom a törlést mert vak vezet világtalant kinézete volt az eseménynek. Szerettem volna segíteni a kérdés feltevőnek, de MySQL-beli járatlanságom sikertelenné tette ebéli igyekezetemet. Nulla ponttal záródott a topik, talán ezért is törlődött. Nem is zavart volna, ha nem piszkált volna a sikertelenség.
    Nekem a MySQL + C# fura együttes, nem tudom hol mire esélyes, ezért nem is foglalkoztam eddig véle, de most sarokba szorított a kíváncsiság. Nem kellett sokat küzdeni, MySQL server + SQL Manager Lite for MySQL letöltése, üzembehelyezése (külön gépen, hogy a távoli elérés is tesztelhető legyen).
    A segéddel aránylag könnyedén kreáltam egy adatbázist, azon belül egy táblát:

    CREATE TABLE `kepek1` ( `Tid` int(11) NOT NULL, `Megnevezes` char(40) default NULL, `Kep1` mediumblob, `Kep2` longblob, PRIMARY KEY (`Tid`) ) ENGINE=InnoDB DEFAULT CHARSET=latin1;

    Majd egy usert a megfelelő jogokkal, a többi már a C# kenyere volt.

    C#-hoz mysql-connector-net-6.0.3 install, és jöhetett a kreálás.
    Eredetileg csupán a kép beolvasása és táblába insert-álása volt a feladat, de kibővítettem egy visszaolvasással és megjelenítéssel.
    Bocsi, a vérbeli C#-osoktól a laza formáért.
    a kód:

    using System; using System.Collections.Generic; using System.ComponentModel; using System.Data; using System.Drawing; using System.Text; using System.Windows.Forms; using System.Threading; using System.IO; using MySql.Data.MySqlClient; using MySql.Data.Types; //http://google.com/codesearch/p?hl=en#f9cd8CGa5WU/MySql.Data/Tests/Source/BlobTests.cs&q=mysql%20insert%20image%20create%20table%20lang:c%23 namespace Kepek { public partial class Form1 : Form { MySql.Data.MySqlClient.MySqlConnection conn; MySql.Data.MySqlClient.MySqlCommand cmd; string SQL; public Form1() { InitializeComponent(); conn = new MySql.Data.MySqlClient.MySqlConnection(); cmd = new MySql.Data.MySqlClient.MySqlCommand(); } private void button1_Click(object sender, EventArgs e) { conn = new MySqlConnection(ConnBild()); MySqlCommand cmd = conn.CreateCommand(); conn.Open(); try { SQL = "INSERT INTO kepek1 VALUES(?id, ?Neve, ?wKep1, ?wKep2)"; FileStream fs = new FileStream("D:\\Beach_Plant.jpg", FileMode.Open, FileAccess.Read); BinaryReader br = new BinaryReader(fs); byte[] photo = br.ReadBytes((int)fs.Length); br.Close(); fs.Close(); cmd.CommandText = SQL; cmd.Parameters.AddWithValue("?id", 2); cmd.Parameters.AddWithValue("?Neve", "Beach_Plant"); cmd.Parameters.AddWithValue("?wKep1", photo); cmd.Parameters.AddWithValue("?wKep2", photo); cmd.ExecuteNonQuery(); MessageBox.Show("Image Inserted into database successfully!", "Success!", MessageBoxButtons.OK, MessageBoxIcon.Asterisk); } catch (MySql.Data.MySqlClient.MySqlException ex) { MessageBox.Show("Error " + ex.Number + " has occurred: " + ex.Message, "Error", MessageBoxButtons.OK, MessageBoxIcon.Error); } conn.Close(); } //http://forums.mysql.com/read.php?38,70279,70486#msg-70486 <= insert/select image private void Form1_Load(object sender, EventArgs e) { } private void button2_Click(object sender, EventArgs e) { conn = new MySqlConnection(ConnBild()); MySqlCommand cmd = conn.CreateCommand(); conn.Open(); SQL = "SELECT Megnevezes,Kep1 FROM kepek1 WHERE Tid = 1"; cmd.CommandText = SQL; MySqlDataReader reader; try { reader = cmd.ExecuteReader(); if (reader.Read()) { Image wkep = null; if (reader["kep1"] != DBNull.Value) { MemoryStream ms = new MemoryStream((byte[])reader["kep1"]); wkep = Image.FromStream(ms); pictureBox1.SizeMode = PictureBoxSizeMode.StretchImage; pictureBox1.Image = wkep; } string wMegnevezes = reader["Megnevezes"] as string; lblKep.Text = wMegnevezes; reader.Close(); } else reader.Close(); } catch (MySql.Data.MySqlClient.MySqlException ex) { MessageBox.Show("Error " + ex.Number + " has occurred: " + ex.Message, "Error", MessageBoxButtons.OK, MessageBoxIcon.Error); } conn.Close(); } public string ConnBild() { MySqlConnectionStringBuilder connBuilder = new MySqlConnectionStringBuilder(); connBuilder.Add("server", "999.999.999.9"); connBuilder.Add("Database", "new_db1"); connBuilder.Add("User Id", "kakukk"); connBuilder.Add("Password", "kakkuk"); var connstr = connBuilder.ConnectionString; return connstr; } } }

    Bizakodom, hogy mást is érdekel e téma, ezért merészkedtem közreadni e néhány sort. Bocs, ha tévednék..
    Mutasd a teljes hozzászólást!
    Csatolt állomány
Tetszett amit olvastál? Szeretnél a jövőben is értesülni a hasonló érdekességekről?
abcd