Scrivere e leggere blob in mysql

di il
3 risposte

Scrivere e leggere blob in mysql

Buon giorno a tutti
ho un problema che vi descrivo, sto cercando di archiviare un pdf direttamente in DB.
Riesco a scriverlo ma quando lo leggo e lo visualizzo l'immagine è troncata.
Non riesco a capire dove sbaglio qualcuno mi può dare una mano???

{
    public partial class Form1 : Form
    {
        public Form1()
        {
            InitializeComponent();
        }
        Byte[] ByteArray;
        private void btn_byte_Click(object sender, EventArgs e)
        {
            ByteArray = File.ReadAllBytes(@"c:\Serrall\prova.pdf");
            MySqlParameter blob = new MySqlParameter("@UserImage", MySqlDbType.Blob, ByteArray.Length);
            blob.Value = ByteArray;
            DataRec DBRec = new DataRec();
            DBRec.RecData("insert into pdf (immagini) Values ('" + blob.Value + "')");
            ////Do not forget to write the file extension
            //File.WriteAllBytes("<file path>", ByteArray);
        }
        private void btn_tofile_Click(object sender, EventArgs e)
        {
            DataRec DBRec = new DataRec();
            DBRec.RecData("insert into pdf (immagini) Values ('" + ByteArray + "')");
            File.WriteAllBytes(@"c:\Serrall\prova_tofile.pdf", ByteArray);
        }
        private void button7_Click(object sender, EventArgs e)
        {
            DataRead DBRead = new DataRead(); // creo un'oggetto con riferimento la classe dataread
            DataTable battuti = new DataTable(); // creo una datatable
            battuti = DBRead.ReadData("SELECT * FROM pdf");
              byte[] buffer = (byte[])battuti.Rows[0]["immagini"];
            File.WriteAllBytes(@"c:\Serrall\prova_tofile_mysql.pdf", buffer);
        }
    }
}

3 Risposte

  • Re: Scrivere e leggere blob in mysql

    DataRead e DataRec dove sono definite?
  • Re: Scrivere e leggere blob in mysql

    Sono due classi che uso per scrivere e leggere
    le devo postare ??
  • Re: Scrivere e leggere blob in mysql

    
    Public DataTable ReadData(string querystring)
            {
                GestioneMySql.ApriConnessione();
                DataTable dt = new DataTable();
                MySqlCommand comandoRicerca = new MySqlCommand(querystring, GestioneMySql.Connessione);
                MySqlDataReader reader = comandoRicerca.ExecuteReader();
                dt.Load(reader);
                GestioneMySql.ChiudiConnessione();
                return dt;
            }
    
    ---------------------------
    
            public void RecData(string querystring)
            {
                GestioneMySql.ApriConnessione();
                MySqlCommand comandoScrittura = new MySqlCommand(querystring, GestioneMySql.Connessione);
                MySqlDataReader reader = comandoScrittura.ExecuteReader();
                GestioneMySql.ChiudiConnessione();
            }
    

    --------------------------------------
    
        public static class GestioneMySql
    
        {
            //public static string pathIp = "192.168.0.1";
            public static string StringaConnessione = "Server=192.168.0.1;Database=test;Uid=root;Pwd=xxxxxxxx";
            //public static string StringaConnessione = "Server=" + pathIp + ";Database=configuratore;Uid=root;Pwd=1937qaws";
            public static MySqlConnection Connessione = new MySqlConnection(StringaConnessione);
            public static bool ApriConnessione()
            {
                try
                {
                    if (Connessione.State != ConnectionState.Open)
                    {
                        Connessione.ConnectionString = GestioneMySql.StringaConnessione;
                        Connessione.Open();
                    }
                    return true;
                }
                catch (Exception)
                {
                    return false;
                }
            }
            public static bool ChiudiConnessione()
            {
                try
                {
                    if (Connessione.State != System.Data.ConnectionState.Closed)
                    {
                        Connessione.Close();
                    }
                    return true;
                }
                catch
                {
                    return false;
                }
            }
        }
        
Devi accedere o registrarti per scrivere nel forum
3 risposte