Tuesday, 24 February 2015

Insert Data into Database in Binary From Using Handler

Database

Create table BinaryData
(
id int identity(1,1)primary key,
FileName Varchar(100),
FileType Varchar(100),
FileData Varchar(100)
)


Default.aspx......

<%@ Page Language="C#" AutoEventWireup="true" CodeFile="Default.aspx.cs" Inherits="_Default" %>

<!DOCTYPE html>

<html xmlns="http://www.w3.org/1999/xhtml">
<head id="Head1" runat="server">
    <title></title>
</head>
<body>
    <form id="form1" runat="server">
    <div style="height:500px; width:350px; background-color:wheat;">
   
        <br />
        <asp:TextBox ID="TextBox1" runat="server"></asp:TextBox>
        <asp:FileUpload ID="FileUpload1" runat="server" />
        <asp:Button ID="Button1" runat="server" Text="Upload" OnClick="Button1_Click" />
    <asp:DataList ID="DataList1" runat="server" RepeatColumns="5">
        <ItemTemplate>
            <asp:Image ID="Image1" Height="200" Width="200" runat="server" ImageUrl='<%#"Handler.aspx?id="+ Eval("id") %>' />
        </ItemTemplate>
    </asp:DataList>
    </div>
    </form>
</body>
</html>


Default.aspx.cs

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 System.Data.SqlClient;
using System.Configuration;
using System.IO;

public partial class _Default : System.Web.UI.Page
{
    string cs = ConfigurationManager.ConnectionStrings["braj"].ConnectionString;
    protected void Page_Load(object sender, EventArgs e)
    {
        if (!IsPostBack)
        {
       
        }
    }
    protected void Button1_Click(object sender, EventArgs e)
    {
      string FileName = Path.GetFileName(FileUpload1.PostedFile.FileName);
        Stream str = FileUpload1.PostedFile.InputStream;
        BinaryReader br = new BinaryReader(str);
        Byte[] size = br.ReadBytes((int)str.Length);
        string constr = ConfigurationManager.ConnectionStrings["shopin"].ConnectionString;
        using (SqlConnection con = new SqlConnection(constr))
        {
            string query = "insert into BinaryData values (@FileName, @FileType,@FileData)";
            using (SqlCommand cmd = new SqlCommand(query))
            {
                cmd.Connection = con;
                cmd.Parameters.AddWithValue("@FileName", FileName);
                cmd.Parameters.AddWithValue("@FileType", "word/Application");
                cmd.Parameters.AddWithValue("@FileData", size);


                con.Open();
                cmd.ExecuteNonQuery();
                con.Close();
}
}
}

Handler.aspx.cs..

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 System.Data.SqlClient;
using System.Configuration;
using System.IO;

public partial class Handler : System.Web.UI.Page
{
    protected void Page_Load(object sender, EventArgs e)
    {
        string id = Request.QueryString["id"];
        string cs = ConfigurationManager.ConnectionStrings["braj"].ConnectionString;
        string query = "select FileData from [BinaryData] where id=@id";
        SqlConnection con = new SqlConnection(cs);
        SqlCommand cmd = new SqlCommand(query, con);
        cmd.Parameters.Add("@id", SqlDbType.Int).Value = Convert.ToInt32(id);
        con.Open();
        SqlDataReader dr = cmd.ExecuteReader();
        {
            if (dr.Read())
            {
                byte[] imgdata = (byte[])dr["FileData"];
                Response.BinaryWrite(imgdata);
                con.Close();
            }
        }
    }
}

web.config....

<?xml version="1.0"?>

<configuration>

    <system.web>
      <compilation debug="true" targetFramework="4.0" />
    </system.web>
  <connectionStrings>
    <add name="braj" connectionString="Data Source=.;Initial Catalog=MultipleIMG;Integrated Security=True" providerName=".NET Framework Data Provider for SQL Server"/>
  </connectionStrings>
</configuration>

No comments:

Post a Comment