zoukankan      html  css  js  c++  java
  • Asp.net 2.0(C#)图片存储到数据库和从数据库读取显示

    最近捣鼓了一下,效果就是这样:
    图1:


    图2:


    ImageFileUpload.aspx:

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

    <!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>
    </head>
    <body>
        
    <form id="Form2" enctype="multipart/form-data" runat="server">

                
    <asp:Table ID="Table1" Runat="server" Width="39%" BorderWidth="1" BackColor="Beige">

                            
    <asp:TableRow runat="server">

                                        
    <asp:TableCell ColumnSpan="2" BackColor="Red" runat="server">

                                        
    <asp:Label ID="Label1" Font-size="12px" ForeColor="White" font-bold="True" Runat="server" Text="添加" Font-Names="verdana" />

                                        
    </asp:TableCell>

                            
    </asp:TableRow>

                            
    <asp:TableRow runat="server">

                                        
    <asp:TableCell HorizontalAlign="Right" runat="server"><asp:Label ID="Label2" Font-size="12px"  Runat="server" Text="名字" Font-Names="verdana" /></asp:TableCell>

                                        
    <asp:TableCell runat="server"><asp:TextBox id="txtPersonName" Runat="server" /></asp:TableCell>

                            
    </asp:TableRow>

                            
    <asp:TableRow runat="server">

                                        
    <asp:TableCell HorizontalAlign="Right" runat="server"><asp:Label ID="Label3" Font-size="12px"  Runat="server" Text="Email" Font-Names="verdana" /></asp:TableCell>

                                        
    <asp:TableCell runat="server"><asp:TextBox id="txtPersonEmail" Runat="server" /></asp:TableCell>

                            
    </asp:TableRow>

                            
    <asp:TableRow runat="server">

                                        
    <asp:TableCell HorizontalAlign="Right" runat="server"><asp:Label ID="Label4" Font-size="12px"  Runat="server" Text="性别" Font-Names="verdana" /></asp:TableCell>

                                        
    <asp:TableCell runat="server">

                                                    
    <asp:RadioButton GroupName="sex"  Font-Size="12px" Text="男性" ID="sexMale" Runat="server"   Checked="true" />

                                                    
    <asp:RadioButton GroupName="sex"  Font-Size="12px" Text="女性" ID="sexFeMale" Runat="server" />

                                        
    </asp:TableCell>

                            
    </asp:TableRow>

                            
    <asp:TableRow runat="server">

                                        
    <asp:TableCell HorizontalAlign="Right" runat="server"><asp:Label ID="Label5" Font-size="12px"  Runat="server" Text="生日" Font-Names="verdana" /></asp:TableCell>

                                        
    <asp:TableCell runat="server"><asp:TextBox id="txtPersonDob" runat="server" /></asp:TableCell>

                            
    </asp:TableRow>

                            
    <asp:TableRow runat="server">

                                        
    <asp:TableCell HorizontalAlign="Right" runat="server"><asp:Label ID="Label6" Font-size="12px"  Runat="server" Text="图片" Font-Names="verdana" /></asp:TableCell>

                                        
    <asp:TableCell runat="server"><input type="file" id="PersonImage" runat="server" /></asp:TableCell>

                            
    </asp:TableRow>

                            
    <asp:TableRow runat="server">

                                        
    <asp:TableCell ColumnSpan="2" HorizontalAlign="Center" runat="server">

                                        
    <asp:Button ID="Button1" Text="添加" OnClick="AddPerson" runat="server" />

                                        
    </asp:TableCell>

                            
    </asp:TableRow>

                
    </asp:Table>
            
    <br />
            
    <table>
                
    <tr>
                    
    <td align="left" valign="top" style=" 181px">
                        
    <asp:Label ID="Label_Message" runat="server" Font-Size="10pt"></asp:Label></td>
                    
    <td style=" 7px">
                    
    </td>
                    
    <td align="left" style=" 18px" valign="top">
                    
    </td>
                
    </tr>
                
    <tr>
                    
    <td style=" 181px;" align="left" valign="top">
                        
    <asp:GridView ID="GridView1" runat="server" AutoGenerateColumns="False" CellPadding="4" DataKeyNames="PersonID" DataSourceID="SqlDataSource_SelectImage" ForeColor="#333333" OnSelectedIndexChanged="GridView1_SelectedIndexChanged" Font-Size="10pt" Width="200px" BackColor="#FFE0C0">
                            
    <FooterStyle BackColor="#507CD1" Font-Bold="True" ForeColor="White" />
                            
    <Columns>
                                
    <asp:TemplateField HeaderText="序号" InsertVisible="False" SortExpression="PersonID">
                                    
    <EditItemTemplate>
                                        
    <asp:Label ID="Label1" runat="server" Text='<%# Eval("PersonID") %>'></asp:Label>
                                    
    </EditItemTemplate>
                                    
    <ItemTemplate>
                                        
    <asp:Label ID="Label1" runat="server" Text='<%# Bind("PersonID") %>'></asp:Label>
                                    
    </ItemTemplate>
                                    
    <HeaderStyle Width="35px" />
                                
    </asp:TemplateField>
                                
    <asp:BoundField DataField="PersonName" HeaderText="名字" SortExpression="PersonName" />
                                
    <asp:BoundField DataField="PersonImageType" HeaderText="图片类型" SortExpression="PersonImageType" />
                                
    <asp:CommandField ShowSelectButton="True" >
                                    
    <ItemStyle Width="30px" />
                                
    </asp:CommandField>
                            
    </Columns>
                            
    <RowStyle BackColor="#EFF3FB" />
                            
    <EditRowStyle BackColor="#2461BF" />
                            
    <SelectedRowStyle BackColor="#D1DDF1" Font-Bold="True" ForeColor="#333333" />
                            
    <PagerStyle BackColor="#2461BF" ForeColor="White" HorizontalAlign="Center" />
                            
    <HeaderStyle BackColor="Red" Font-Bold="True" ForeColor="White" />
                            
    <AlternatingRowStyle BackColor="White" />
                        
    </asp:GridView>
                    
    </td>
                    
    <td style=" 7px; height: 180px;">
                    
    </td>
                    
    <td align="left" style=" 18px; height: 180px;" valign="top">
                        
    <asp:Image ID="Image_Show" runat="server" /></td>
                
    </tr>
                
    <tr>
                    
    <td style=" 181px">
                        
    </td>
                    
    <td style=" 7px">
                    
    </td>
                    
    <td style=" 18px">
                    
    </td>
                
    </tr>
                
    <tr>
                    
    <td style=" 181px; height: 21px;">
                    
    </td>
                    
    <td style=" 7px; height: 21px;">
                    
    </td>
                    
    <td style=" 18px; height: 21px;">
                    
    </td>
                
    </tr>
            
    </table>
            
    <asp:SqlDataSource ID="SqlDataSource_SelectImage" runat="server" ConnectionString="<%$ ConnectionStrings:ImageSelect_ConnectionString %>"
                SelectCommand
    ="SELECT PersonID, PersonName, PersonImageType FROM Person"></asp:SqlDataSource>

        
    </form>
    </body>
    </html>

    ImageFileUpload.aspx.cs:
    using System;
    using System.Data;
    using System.Configuration;
    using System.Collections;
    using System.Web;
    using System.Web.Security;
    using System.Web.UI;
    using System.Web.UI.WebControls;
    using System.Web.UI.WebControls.WebParts;
    using System.Web.UI.HtmlControls;
    using System.Data.SqlClient;
    using System.IO;




    public partial class ImageFileUpload : System.Web.UI.Page
    {
        
    protected void Page_Load(object sender, EventArgs e)
        
    {

        }






        
    protected void AddPerson(object sender, EventArgs e)
        
    {
            
    int intImageSize;
            
    string strImageType;
            Stream ImageStream;

             intImageSize 
    = PersonImage.PostedFile.ContentLength;
             ImageStream 
    = PersonImage.PostedFile.InputStream;
             strImageType 
    = PersonImage.PostedFile.ContentType;
            Byte[] ImageContent 
    = new Byte[intImageSize];
            
    int  intStatus;
            intStatus 
    = ImageStream.Read(ImageContent, 0, intImageSize);

            
    //string ConnStr = System.Configuration.ConfigurationSettings.AppSettings["Lw_SqlConnectString"];
            string ConnStr = "Data Source=127.0.0.1;Initial Catalog=Pfrmis_TZXY;User ID=sa";
            SqlConnection myConnection
    =new SqlConnection(ConnStr);
            SqlCommand  myCommand
    =new SqlCommand("sp_person_isp", myConnection);
            myCommand.CommandType 
    = CommandType.StoredProcedure;

            SqlParameter prmEmail
    =new SqlParameter("@PersonEmail", SqlDbType.VarChar, 255);

            prmEmail.Value 
    = txtPersonEmail.Text;
            myCommand.Parameters.Add(prmEmail);

            SqlParameter prmName
    =new SqlParameter("@PersonName", SqlDbType.VarChar, 255);

            prmName.Value 
    = txtPersonName.Text;
            myCommand.Parameters.Add(prmName);

            SqlParameter prmSex 
    =new SqlParameter("@PersonSex", SqlDbType.Char, 1);
            
    if (sexMale.Checked) 
            
    {
                prmSex.Value 
    = "M";
            }

            
    else
            
    {
                 prmSex.Value 
    = "F";
            }

            myCommand.Parameters.Add(prmSex);

            SqlParameter prmPersonDOB
    = new SqlParameter("@PersonDOB", SqlDbType.DateTime);

            prmPersonDOB.Value 
    = txtPersonDob.Text;

            myCommand.Parameters.Add(prmPersonDOB);

            SqlParameter prmPersonImage 
    =new SqlParameter("@PersonImage", SqlDbType.Image);

            prmPersonImage.Value 
    = ImageContent;

            myCommand.Parameters.Add(prmPersonImage);

            SqlParameter prmPersonImageType 
    =new SqlParameter("@PersonImageType", SqlDbType.VarChar, 255);

            prmPersonImageType.Value 
    = strImageType;

            myCommand.Parameters.Add(prmPersonImageType);

            
    try
            
    {
                
                myConnection.Open();
                myCommand.ExecuteNonQuery();

                myConnection.Close();

                Response.Write(
    "添加成功!");

            }

            
    catch(SqlException  SQLexc)
            
    {
                Response.Write(
    "插入失败,错误如下: " + SQLexc.ToString());
            }

                                       


        }


     
        
    protected void GridView1_SelectedIndexChanged(object sender, EventArgs e)
        
    {

           
    // Session["id"] = "";
           
            Label lbl1;
            lbl1 
    = (Label)GridView1.SelectedRow.Cells[0].FindControl("Label1");

            Label_Message.Text 
    ="你选择的图片是:"+lbl1.Text;
            Session[
    "id"= lbl1.Text;
            Image_Show.ImageUrl 
    = "ImageShow.aspx";
        }

    }


    ImageShow.aspx:(显示图片)
    <%@ Page Language="C#" AutoEventWireup="true" CodeFile="ImageShow.aspx.cs" Inherits="ImageShow" %>

    <!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>
    </head>
    <body>
        
    <form id="form1" runat="server">
        
    <div>
        
        
    </div>
        
    </form>
    </body>
    </html>

    ImageShow.aspx.cs:

    using System;
    using System.Data;
    using System.Configuration;
    using System.Collections;
    using System.Web;
    using System.Web.Security;
    using System.Web.UI;
    using System.Web.UI.WebControls;
    using System.Web.UI.WebControls.WebParts;
    using System.Web.UI.HtmlControls;
    using System.Data.SqlClient;
    public partial class ImageShow : System.Web.UI.Page
    {
        
    protected void Page_Load(object sender, EventArgs e)
        
    {
            
    //连接数据库的第一种方法
            SqlConnection myConnection = new SqlConnection(ConfigurationManager.AppSettings["Lw_SqlConnectString"]);

            
    //连接数据库的第二种方法
            
    //SqlConnection myConnection = new SqlConnection("Data Source=.;Initial Catalog=Tcis_shrl;User Id=sa;Password=;");
            if (Session["id"== null)
            
    {

            }

            
    else
            
    {
                
    string sql = "Select PersonImage from Person Where PersonID=";
                SqlCommand myCommand 
    = new SqlCommand(sql + Session["id"].ToString().Trim(), myConnection);
                
                
    try
                
    {
                    myConnection.Open();
                    SqlDataReader myDataReader;
                    myDataReader 
    = myCommand.ExecuteReader(CommandBehavior.CloseConnection);
                    
    if (myDataReader.Read())
                    
    {
                        Response.Clear();

                       
                      
    //  Response.ContentType = "image/pjpeg";//可有可无
                        Response.BinaryWrite((byte[])myDataReader["PersonImage"]);
                    }

                    myConnection.Close();
                }

                
    catch (SqlException SQLexc)
                
    {
                     Response.Write(SQLexc);
                }

                Response.End();
            }

        }

    }


    最后一个存储过程:
    Drop Table Person

    Go

    Create Table Person

    (

    PersonID Int Identity,

    PersonEmail Varchar(255),

    PersonName Varchar(255),

    PersonSex Char(1),

    PersonDOB DateTime,

    PersonImage Image,

    PersonImageType Varchar(255)

    )

    Drop Proc sp_person_isp

    Go

    Create Proc sp_person_isp

    @PersonEmail Varchar(255),

    @PersonName Varchar(255),

    @PersonSex Char(1),

    @PersonDOB DateTime,

    @PersonImage Image,

    @PersonImageType Varchar(255)

    As

    Begin

                Insert into Person

                            (PersonEmail, PersonName, PersonSex,

                             PersonDOB, PersonImage, PersonImageType)

                Values

                            (@PersonEmail, @PersonName, @PersonSex,

                             @PersonDOB, @PersonImage, @PersonImageType)

    End

    Go

     

    Fighting
  • 相关阅读:
    微信公众号支付JSAPI,提示:2支付缺少参数:appId
    Application对象
    Apache安装和文件配置
    Apache编译教程
    MS4W安装教程
    MapServer教程2
    Tomcat修改源码,重新编译
    MapServer教程
    QGIS SDK下载
    OpenStreetMap全球库
  • 原文地址:https://www.cnblogs.com/cry/p/623973.html
Copyright © 2011-2022 走看看