Asp.net 2.0(C#)图片存储到数据库和从数据库读取显示

本文介绍了一个使用ASP.NET实现的图片上传及显示功能的具体实现方法。通过C#代码完成图片信息的收集、存储和展示,并详细展示了如何利用ASP.NET中的控件进行布局设计和交互操作。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

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


图2:


ImageFileUpload.aspx:

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

<!DOCTYPEhtmlPUBLIC"-//W3C//DTDXHTML1.0Transitional//EN""http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">

<htmlxmlns="http://www.w3.org/1999/xhtml">
<headrunat="server">
<title>图片保存和显示</title>
</head>
<body>
<formid="Form2"enctype="multipart/form-data"runat="server">

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

<asp:TableRowrunat="server">

<asp:TableCellColumnSpan="2"BackColor="Red"runat="server">

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

</asp:TableCell>

</asp:TableRow>

<asp:TableRowrunat="server">

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

<asp:TableCellrunat="server"><asp:TextBoxid="txtPersonName"Runat="server"/></asp:TableCell>

</asp:TableRow>

<asp:TableRowrunat="server">

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

<asp:TableCellrunat="server"><asp:TextBoxid="txtPersonEmail"Runat="server"/></asp:TableCell>

</asp:TableRow>

<asp:TableRowrunat="server">

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

<asp:TableCellrunat="server">

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

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

</asp:TableCell>

</asp:TableRow>

<asp:TableRowrunat="server">

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

<asp:TableCellrunat="server"><asp:TextBoxid="txtPersonDob"runat="server"/></asp:TableCell>

</asp:TableRow>

<asp:TableRowrunat="server">

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

<asp:TableCellrunat="server"><inputtype="file"id="PersonImage"runat="server"/></asp:TableCell>

</asp:TableRow>

<asp:TableRowrunat="server">

<asp:TableCellColumnSpan="2"HorizontalAlign="Center"runat="server">

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

</asp:TableCell>

</asp:TableRow>

</asp:Table>
<br/>
<table>
<tr>
<tdalign="left"valign="top"style="width:181px">
<asp:LabelID="Label_Message"runat="server"Font-Size="10pt"></asp:Label></td>
<tdstyle="width:7px">
</td>
<tdalign="left"style="width:18px"valign="top">
</td>
</tr>
<tr>
<tdstyle="width:181px;"align="left"valign="top">
<asp:GridViewID="GridView1"runat="server"AutoGenerateColumns="False"CellPadding="4"DataKeyNames="PersonID"DataSourceID="SqlDataSource_SelectImage"ForeColor="#333333"OnSelectedIndexChanged="GridView1_SelectedIndexChanged"Font-Size="10pt"Width="200px"BackColor="#FFE0C0">
<FooterStyleBackColor="#507CD1"Font-Bold="True"ForeColor="White"/>
<Columns>
<asp:TemplateFieldHeaderText="序号"InsertVisible="False"SortExpression="PersonID">
<EditItemTemplate>
<asp:LabelID="Label1"runat="server"Text='<%#Eval("PersonID")%>'></asp:Label>
</EditItemTemplate>
<ItemTemplate>
<asp:LabelID="Label1"runat="server"Text='<%#Bind("PersonID")%>'></asp:Label>
</ItemTemplate>
<HeaderStyleWidth="35px"/>
</asp:TemplateField>
<asp:BoundFieldDataField="PersonName"HeaderText="名字"SortExpression="PersonName"/>
<asp:BoundFieldDataField="PersonImageType"HeaderText="图片类型"SortExpression="PersonImageType"/>
<asp:CommandFieldShowSelectButton="True">
<ItemStyleWidth="30px"/>
</asp:CommandField>
</Columns>
<RowStyleBackColor="#EFF3FB"/>
<EditRowStyleBackColor="#2461BF"/>
<SelectedRowStyleBackColor="#D1DDF1"Font-Bold="True"ForeColor="#333333"/>
<PagerStyleBackColor="#2461BF"ForeColor="White"HorizontalAlign="Center"/>
<HeaderStyleBackColor="Red"Font-Bold="True"ForeColor="White"/>
<AlternatingRowStyleBackColor="White"/>
</asp:GridView>
</td>
<tdstyle="width:7px;height:180px;">
</td>
<tdalign="left"style="width:18px;height:180px;"valign="top">
<asp:ImageID="Image_Show"runat="server"/></td>
</tr>
<tr>
<tdstyle="width:181px">
</td>
<tdstyle="width:7px">
</td>
<tdstyle="width:18px">
</td>
</tr>
<tr>
<tdstyle="width:181px;height:21px;">
</td>
<tdstyle="width:7px;height:21px;">
</td>
<tdstyle="width:18px;height:21px;">
</td>
</tr>
</table>
<asp:SqlDataSourceID="SqlDataSource_SelectImage"runat="server"ConnectionString="<%$ConnectionStrings:ImageSelect_ConnectionString%>"
SelectCommand
="SELECTPersonID,PersonName,PersonImageTypeFROMPerson"></asp:SqlDataSource>

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

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




publicpartialclassImageFileUpload:System.Web.UI.Page
{
protectedvoidPage_Load(objectsender,EventArgse)
{

}






protectedvoidAddPerson(objectsender,EventArgse)
{
intintImageSize;
stringstrImageType;
StreamImageStream;

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

//stringConnStr=System.Configuration.ConfigurationSettings.AppSettings["Lw_SqlConnectString"];
stringConnStr="DataSource=127.0.0.1;InitialCatalog=Pfrmis_TZXY;UserID=sa";
SqlConnectionmyConnection
=newSqlConnection(ConnStr);
SqlCommandmyCommand
=newSqlCommand("sp_person_isp",myConnection);
myCommand.CommandType
=CommandType.StoredProcedure;

SqlParameterprmEmail
=newSqlParameter("@PersonEmail",SqlDbType.VarChar,255);

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

SqlParameterprmName
=newSqlParameter("@PersonName",SqlDbType.VarChar,255);

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

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

else
{
prmSex.Value
="F";
}

myCommand.Parameters.Add(prmSex);

SqlParameterprmPersonDOB
=newSqlParameter("@PersonDOB",SqlDbType.DateTime);

prmPersonDOB.Value
=txtPersonDob.Text;

myCommand.Parameters.Add(prmPersonDOB);

SqlParameterprmPersonImage
=newSqlParameter("@PersonImage",SqlDbType.Image);

prmPersonImage.Value
=ImageContent;

myCommand.Parameters.Add(prmPersonImage);

SqlParameterprmPersonImageType
=newSqlParameter("@PersonImageType",SqlDbType.VarChar,255);

prmPersonImageType.Value
=strImageType;

myCommand.Parameters.Add(prmPersonImageType);

try
{

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

myConnection.Close();

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

}

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




}



protectedvoidGridView1_SelectedIndexChanged(objectsender,EventArgse)
{

//Session["id"]="";

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

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

}


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

<!DOCTYPEhtmlPUBLIC"-//W3C//DTDXHTML1.0Transitional//EN""http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">

<htmlxmlns="http://www.w3.org/1999/xhtml">
<headrunat="server">
<title>无标题页</title>
</head>
<body>
<formid="form1"runat="server">
<div>

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

ImageShow.aspx.cs:

usingSystem;
usingSystem.Data;
usingSystem.Configuration;
usingSystem.Collections;
usingSystem.Web;
usingSystem.Web.Security;
usingSystem.Web.UI;
usingSystem.Web.UI.WebControls;
usingSystem.Web.UI.WebControls.WebParts;
usingSystem.Web.UI.HtmlControls;
usingSystem.Data.SqlClient;
publicpartialclassImageShow:System.Web.UI.Page
{
protectedvoidPage_Load(objectsender,EventArgse)
{
//连接数据库的第一种方法
SqlConnectionmyConnection=newSqlConnection(ConfigurationManager.AppSettings["Lw_SqlConnectString"]);

//连接数据库的第二种方法
//SqlConnectionmyConnection=newSqlConnection("DataSource=.;InitialCatalog=Tcis_shrl;UserId=sa;Password=;");
if(Session["id"]==null)
{

}

else
{
stringsql="SelectPersonImagefromPersonWherePersonID=";
SqlCommandmyCommand
=newSqlCommand(sql+Session["id"].ToString().Trim(),myConnection);

try
{
myConnection.Open();
SqlDataReadermyDataReader;
myDataReader
=myCommand.ExecuteReader(CommandBehavior.CloseConnection);
if(myDataReader.Read())
{
Response.Clear();


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

myConnection.Close();
}

catch(SqlExceptionSQLexc)
{
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

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值