最近捣鼓了一下,效果就是这样:
图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