您的位置:首页 > 编程语言 > ASP

ASP.NET 数据库中插入图片和读取图片

2010-06-15 07:30 676 查看
前提:

1. 安装有数据库,对对数据库有读写权限

本文分两部分:

1. 插入图片到数据库中

2. 从数据库中读取图片

一、插入图片到数据库中

1. 首先,设置<form>的属性enctype="multipart/form-data"

2. 添加两个控件到页面中,一个是输入类型为file,另一个是button

代码如下:

<form id="form1" enctype="multipart/form-data" runat="server">
<input id="PersonImage" type="file" />
<asp:Button ID="Button1" runat="server" Text="Button" onclick="Button1_Click" />

</form>

3.存储过程,用来创建一表个和要插入的键值

Drop Table Person

Go

Create Table Person

(

ID Int Identity,

PersonImage Image,

PersonImageType Varchar(255)

)
Drop Proc Images

Go

Create Proc Image

@PersonImage Image,

@PersonImageType Varchar(255)

As

Begin

Insert into Images

(PersonImage, PersonImageType)

Values

(@PersonImage, @PersonImageType)

End

4. 添加Button1的触发事件

protected void Button1_Click(object sender, EventArgs e)
{

string strImgType;

int iImgSize = 0;

Stream imgStream;

iImgSize = PersonImage.PostedFile.ContentLength;

strImgType = PersonImage.PostedFile.ContentType;

imgStream = PersonImage.PostedFile.InputStream;

Byte[] ImageContent = new Byte[iImgSize];

int intStatus;

intStatus = imgStream.Read(ImageContent, 0, iImgSize);

string ConnectionString = @"Server=myMachine/SQLEXPRESS;Database=Test;Trusted_Connection=Yes;";

SqlConnection myConnection = new SqlConnection(ConnectionString);

SqlCommand myCmd = new SqlCommand("InsertImages", myConnection);

myCmd.CommandType = CommandType.StoredProcedure;

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

prmPersonImage.Value = ImageContent;

myCmd.Parameters.Add(prmPersonImage);

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

prmPersonImageType.Value = strImgType;

myCmd.Parameters.Add(prmPersonImageType);

try
{

myConnection.Open();

myCmd.ExecuteNonQuery();

myConnection.Close();

Response.Write("Image successfully added!");

}

catch (SqlException sqlExc)
{

Response.Write("Insert Failed. Error Details are: " + sqlExc.ToString());

}

}

运行并查看数据库中是否有增加一条记录

二、从数据库中读取图片

这个操作比较简单

protected void RetrieveImage()
{

string ConnectionString = @"Server=myMachine/SQLEXPRESS;Database=Test;Trusted_Connection=Yes;";

SqlConnection myConnection = new SqlConnection(ConnectionString);

string cmdText = "select * from Images";

SqlCommand myCmd = new SqlCommand(cmdText, myConnection);

myConnection.Open();

try
{

SqlDataReader sqlDataReader = myCmd.ExecuteReader();

while (sqlDataReader.Read())
{

Response.BinaryWrite((byte[])sqlDataReader["PersonImage"]);

}

sqlDataReader.Close();

}

catch (SqlException sqlExc)
{

Response.Write("Insert Failed. Error Details are: " + sqlExc.ToString());

}

myConnection.Close();

}

运行并查看数据库中的图片是否有显示
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: