none
Image Mysql RRS feed

  • Pergunta

  •  

    Arquivo de Origem: /mysqlimage.aspx    Linha: 

    Mensagem de Erro do Analisador: Não foi possível carregar o tipo 'Teste.mysqlimage'.

    Olá pessoal , segui um tutorial , e tentei adaptar pra mysql , mais o formulario nem abre , alguem pode me ajdudar a carregar o formulario 

              using System;
    using System.Collections.Generic;
    using System.Linq;
    using System.Web;
    using System.Configuration;  
    using System.Data;
    using MySql.Data;
    using MySql.Data.MySqlClient;
    using System.IO;  

    namespace Teste
    {
        public class DisplayImage : IHttpHandler
        {
            MySqlConnection conn = new MySqlConnection(ConfigurationManager.ConnectionStrings["TesteConnectionString"].ConnectionString);
            public void ProcessRequest(HttpContext context)
            {




                conn.Open();
                MySqlDataAdapter myDataAdapter = new MySqlDataAdapter();
                DataSet myDataSet = new DataSet();
                string varCODIGO = context.Request.QueryString["ID"];
                MySqlCommand cmd = new MySqlCommand("SELECT IMAGEM , DESCRICAO FROM ARQUIVO where CODIGO='" + varCODIGO + "'", conn);
                cmd.Parameters.AddWithValue("@CODIGO", varCODIGO);
                cmd.Prepare(); 
                MySqlDataReader dr = cmd.ExecuteReader();
                dr.Read();
                context.Response.ContentType = dr["DESCRICAO"].ToString();
                context.Response.BinaryWrite((byte[])dr["IMAGEM"]); 
                dr.Close();
                conn.Close();
                context.Response.End();
            }

            public bool IsReusable
            {
                get
                {
                    return false;
                }
            }
        }
    }

                                             

    using System;
    using System.Collections.Generic;
    using System.Linq;
    using System.Web;
    using System.Web.UI;
    using System.Web.UI.WebControls;
    using System.Data;
    using MySql.Data;
    using MySql.Data.MySqlClient;
    using System.Configuration;

    namespace Teste
    {
        public partial class mysqlimage : System.Web.UI.Page
        {
            MySqlConnection conn = new MySqlConnection(ConfigurationManager.ConnectionStrings["TesteConnectionString"].ConnectionString);
            protected void Page_Load(object sender, EventArgs e)
            {
                EmpImageInfo();
            }

            protected void Upload(object sender, EventArgs e)
            {
                string fileName = FileUpload.PostedFile.FileName;
            }

            protected void btnDataInsert_Click(object sender, EventArgs e)
            {
                int length = FileUpload.PostedFile.ContentLength;

                byte[] imgbyte = new byte[length];

                HttpPostedFile image = FileUpload.PostedFile;

                image.InputStream.Read(imgbyte, 0, length);
                string varDESCRICAO = txtDESCRICAO.Text;
                string varEMPRESA = txtEMPRESA.Text;

                conn.Open();
                MySqlCommand cmd = new MySqlCommand("Insert into ARQUIVO ( EMPRESA ,DESCRICAO , IMAGEM ) values (@EMPRESA,@DESCRICAO,@IMAGEM )", conn);
                cmd.Parameters.AddWithValue("@EMPRESA",varEMPRESA);
                cmd.Parameters.AddWithValue("@DESCRICAO",varDESCRICAO);
                cmd.Parameters.AddWithValue("@IMAGEM", SqlDbType.Image).Value = imgbyte;
                int count = cmd.ExecuteNonQuery();
                conn.Close();

                if (count == 1)
                {
                    EmpImageInfo();
                    ScriptManager.RegisterStartupScript(this, this.GetType(), "alertmessage", "javascript:alert('" + varDESCRICAO + " PhotoID Information Inserted successfully')", true);
                }
                txtEMPRESA.Text = string.Empty;
                txtDESCRICAO.Text = string.Empty;
            }

            private void EmpImageInfo()
            {

                MySqlCommand cmd = new MySqlCommand("Select CODIGO , EMPRESA , DESCRICAO, IMAGEM from ARQUIVO ORDER BY DESCRICAO DESC;", conn);
                MySqlDataAdapter adp = new MySqlDataAdapter(cmd);
                DataTable dt = new DataTable(); 
                adp.Fill(dt);
                GridEmpImg.DataSource = dt;
                GridEmpImg.DataBind();
            }  
             
        }
    }

    <%@ Page Language="C#" AutoEventWireup="true" CodeBehind="mysqlimage.aspx.cs" Inherits="Teste.mysqlimage" %>

    <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">

    <html xmlns="http://www.w3.org/1999/xhtml" >
    <head runat="server">
        <title></title>
        <link href="Styles/ui-bootstrap/jquery-ui.custom.css" rel="stylesheet" />
        <link href="Styles/jquery.handsontable.full.css" rel="stylesheet" />
        <script type="js/jquery.js"></script>
        <script type="js/jquery.min.js"></script>
        <script type="js/jquery-ui.custom.js"></script>
        <script type="text/javascript">  

       function previewFile() {  
           var ImagePreview = document.querySelector('#<%=ImgUpload.ClientID %>');
           var mysqlimage = document.querySelector('#<%=FileUpload.ClientID %>').files[0];  
           var reader = new FileReader();  

           reader.onloadend = function () {  
               ImagePreview.src = reader.result;  
           }  

           if (mysqlimage) {
               reader.readAsDataURL(mysqlimage);  
           } else {  
               ImagePreview.src = "";  
           }  
       }  
    </script>  
    </head>
    <body>
        <form id="form1" runat="server">
        <div> 
        <fieldset style="width: 490px"><legend>Employee Information With PhotoID</legend>  
        <asp:Table ID="Table1" runat="server" Width="442px" >  

            <asp:TableRow>  
                <asp:TableCell></asp:TableCell><asp:TableCell><asp:Image ID="ImgUpload" ToolTip="Upload Employee Photo Here" runat="server" Height="200px"  Width="200px" /></asp:TableCell>  
            </asp:TableRow>  

                 <asp:TableRow>  
                    <asp:TableCell> Upload Image:</asp:TableCell><asp:TableCell> <input ID="FileUpload" type="file" name="file" onchange="previewFile()"  runat="server" /></asp:TableCell>  
                </asp:TableRow>  

             <asp:TableRow>  
                <asp:TableCell>Empresa:</asp:TableCell><asp:TableCell><asp:TextBox ID="txtEMPRESA" runat="server"></asp:TextBox> </asp:TableCell>  
            </asp:TableRow>  

            <asp:TableRow>  
                <asp:TableCell>Descricao</asp:TableCell><asp:TableCell><asp:TextBox ID="txtDESCRICAO" runat="server" ></asp:TextBox></asp:TableCell>  
            </asp:TableRow>  

            <asp:TableRow>  
                <asp:TableCell></asp:TableCell><asp:TableCell><asp:Button ID="btnDataInsert" runat="server" Text="SUBMIT" onclick="btnDataInsert_Click" /></asp:TableCell>  
            </asp:TableRow>  

        </asp:Table>  

    </fieldset>  
    </div>  

        <div>  
        <asp:GridView ID="GridEmpImg" runat="server" AutoGenerateColumns="False">  
            <Columns>  
            <asp:TemplateField HeaderText="Image">  
            <ItemTemplate>  
            <asp:Image ID="Image1" runat="server" ImageUrl='<%# "DisplayImage.ashx?ID="+ Eval("CODIGO") %>' Height="150px" Width="150px"/>  
            </ItemTemplate>  
            </asp:TemplateField>  
            <asp:BoundField HeaderText = "Empresa" DataField="EMPRESA" />  
            <asp:BoundField HeaderText = "Descricao" DataField="DESCRICAO" />  
            </Columns>  
        </asp:GridView>  
    </div> 
        </form>
    </body>
    </html>

    segunda-feira, 27 de julho de 2015 17:53

Respostas

  • ImageHttpHandler.ahsx

      MySqlConnection conn = new MySqlConnection(ConfigurationManager.ConnectionStrings["TesteConnectionString"].ConnectionString);             string varCODIGO;             string varEMPRESA;                             public void ProcessRequest(HttpContext context)         {             if (context.Request.QueryString["EMPRESA"] != null)                 varEMPRESA = context.Request.QueryString["EMPRESA"].ToString();             else                 throw new ArgumentException("No parameter specified");             if (context.Request.QueryString["CODIGO"] != null)                 varCODIGO = context.Request.QueryString["CODIGO"].ToString();             else                 throw new ArgumentException("No parameter specified");             if (context.Request.QueryString["EMPRESA"].ToString() != null)             {                     Stream strm = ShowEmpImage(varCODIGO);            byte[] buffer = new byte[4096];            int byteSeq = strm.Read(buffer, 0, 4096);            while (byteSeq > 0)            {                         context.Response.Clear();                         context.Response.ContentType = "image/pjpeg";                         context.Response.BinaryWrite(buffer);                         context.Response.Flush();                         context.Response.Close();                         context.Response.End();               }                     }         }         public Stream ShowEmpImage(string varCODIGO)         {             MySqlCommand cmd = new MySqlCommand("Select FOTO FROM PESSOAS WHERE  EMPRESA='" + varEMPRESA + "' and CODIGO='" + varCODIGO + "' ", conn);             cmd.Parameters.AddWithValue("@EMPRESA", varEMPRESA);             cmd.Parameters.AddWithValue("@CODIGO", varCODIGO);             MySqlDataReader dr = cmd.ExecuteReader();             dr.Read();             object img = cmd.ExecuteScalar();             try             {                 return new MemoryStream((byte[])img);             }             catch             {                 return null;             }             finally             {                 dr.Close();                 conn.Close();             }         }         public bool IsReusable         {             get             {                 return false;             }         }

    Arrumei melhor , e ja consigo identificar os erros 

    O ERRO que obtenho é

    ""No Parameter""  em session CODIGO

    apontado pra essa linha           if (context.Request.QueryString["CODIGO"] != null)

    desde o login trago a session empresa . mais tentei criar uma codigo

    pra passar os parametros para Handler . nais nao deram certos

    coloquei no load

    Page_load 

     conn.Open();
                string varEMPRESA = Label10.Text;
                MySqlCommand cmd = new MySqlCommand("select CODIGO FROM PESSOAS where EMPRESA=@EMPRESA", conn);
                cmd.Parameters.AddWithValue("@EMPRESA", varEMPRESA);
                MySqlDataAdapter adp2 = new MySqlDataAdapter(cmd);
                DataTable dt = new DataTable();
                adp2.Fill(dt);
                int i = cmd.ExecuteNonQuery();

                conn.Close();
                if (dt.Rows.Count > 0)
                {
                    Session["CODIGO"] = dt.Rows[0]["CODIGO"];
                }


                if (Session["CODIGO"] != null)
                {
                    lblSID.Text = Session["CODIGO"].ToString();
                }

                Session["CODIGO"] = dt.Rows[0]["CODIGO"];

    Não consigui enviar o parametros sessions , 

    tenho como eu criala na pageload ?  



    • Editado Marcelo Gustavo segunda-feira, 3 de agosto de 2015 02:30
    • Marcado como Resposta Marcos SJ segunda-feira, 3 de agosto de 2015 12:54
    segunda-feira, 3 de agosto de 2015 02:15

Todas as Respostas

  • Olá Marcelo,

    Tudo bem?

    Poderia por gentileza informar o que exatamente está tentando fazer e qual parte do código com a qual precisa de ajuda?

    Simulamos a abertura do formulário e ele abriu normalmente.

    Atenciosamente


    Marcos Roberto de Souza Junior

    Esse conteúdo e fornecido sem garantias de qualquer tipo, seja expressa ou implícita

    MSDN Community Support

    Por favor, lembre-se de Marcar como Resposta as respostas que resolveram o seu problema. Essa e uma maneira comum de reconhecer aqueles que o ajudaram e fazer com que seja mais fácil para os outros visitantes encontrarem a resolução mais tarde.

    segunda-feira, 27 de julho de 2015 20:28
  • O formulario nao Abre da Erro 

    Acho que deve ser o arquivo avulso DisplayImage.ashx 

    http://www.c-sharpcorner.com/UploadFile/b926a6/image-store-and-retrieve-from-database-using-generic-handler/


    segunda-feira, 27 de julho de 2015 20:40
  • Olá Marcelo,

    Tudo bem?

    Poderia fazer algum teste para identificar se este é de fato o problema?

    Atenciosamente


    Marcos Roberto de Souza Junior

    Esse conteúdo e fornecido sem garantias de qualquer tipo, seja expressa ou implícita

    MSDN Community Support

    Por favor, lembre-se de Marcar como Resposta as respostas que resolveram o seu problema. Essa e uma maneira comum de reconhecer aqueles que o ajudaram e fazer com que seja mais fácil para os outros visitantes encontrarem a resolução mais tarde.

    terça-feira, 28 de julho de 2015 13:09
  • aceito sugestoes , 

    posso refazer . e startando até chegar o ponto 

    quarta-feira, 29 de julho de 2015 20:30
  • ImageHttpHandler.ahsx

      MySqlConnection conn = new MySqlConnection(ConfigurationManager.ConnectionStrings["TesteConnectionString"].ConnectionString);             string varCODIGO;             string varEMPRESA;                             public void ProcessRequest(HttpContext context)         {             if (context.Request.QueryString["EMPRESA"] != null)                 varEMPRESA = context.Request.QueryString["EMPRESA"].ToString();             else                 throw new ArgumentException("No parameter specified");             if (context.Request.QueryString["CODIGO"] != null)                 varCODIGO = context.Request.QueryString["CODIGO"].ToString();             else                 throw new ArgumentException("No parameter specified");             if (context.Request.QueryString["EMPRESA"].ToString() != null)             {                     Stream strm = ShowEmpImage(varCODIGO);            byte[] buffer = new byte[4096];            int byteSeq = strm.Read(buffer, 0, 4096);            while (byteSeq > 0)            {                         context.Response.Clear();                         context.Response.ContentType = "image/pjpeg";                         context.Response.BinaryWrite(buffer);                         context.Response.Flush();                         context.Response.Close();                         context.Response.End();               }                     }         }         public Stream ShowEmpImage(string varCODIGO)         {             MySqlCommand cmd = new MySqlCommand("Select FOTO FROM PESSOAS WHERE  EMPRESA='" + varEMPRESA + "' and CODIGO='" + varCODIGO + "' ", conn);             cmd.Parameters.AddWithValue("@EMPRESA", varEMPRESA);             cmd.Parameters.AddWithValue("@CODIGO", varCODIGO);             MySqlDataReader dr = cmd.ExecuteReader();             dr.Read();             object img = cmd.ExecuteScalar();             try             {                 return new MemoryStream((byte[])img);             }             catch             {                 return null;             }             finally             {                 dr.Close();                 conn.Close();             }         }         public bool IsReusable         {             get             {                 return false;             }         }

    Arrumei melhor , e ja consigo identificar os erros 

    O ERRO que obtenho é

    ""No Parameter""  em session CODIGO

    apontado pra essa linha           if (context.Request.QueryString["CODIGO"] != null)

    desde o login trago a session empresa . mais tentei criar uma codigo

    pra passar os parametros para Handler . nais nao deram certos

    coloquei no load

    Page_load 

     conn.Open();
                string varEMPRESA = Label10.Text;
                MySqlCommand cmd = new MySqlCommand("select CODIGO FROM PESSOAS where EMPRESA=@EMPRESA", conn);
                cmd.Parameters.AddWithValue("@EMPRESA", varEMPRESA);
                MySqlDataAdapter adp2 = new MySqlDataAdapter(cmd);
                DataTable dt = new DataTable();
                adp2.Fill(dt);
                int i = cmd.ExecuteNonQuery();

                conn.Close();
                if (dt.Rows.Count > 0)
                {
                    Session["CODIGO"] = dt.Rows[0]["CODIGO"];
                }


                if (Session["CODIGO"] != null)
                {
                    lblSID.Text = Session["CODIGO"].ToString();
                }

                Session["CODIGO"] = dt.Rows[0]["CODIGO"];

    Não consigui enviar o parametros sessions , 

    tenho como eu criala na pageload ?  



    • Editado Marcelo Gustavo segunda-feira, 3 de agosto de 2015 02:30
    • Marcado como Resposta Marcos SJ segunda-feira, 3 de agosto de 2015 12:54
    segunda-feira, 3 de agosto de 2015 02:15