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