C从SQL数据库中读取和存入图片.docx
《C从SQL数据库中读取和存入图片.docx》由会员分享,可在线阅读,更多相关《C从SQL数据库中读取和存入图片.docx(21页珍藏版)》请在冰点文库上搜索。
C从SQL数据库中读取和存入图片
C#从SQL数据库中读取和存入图片
本实例主要介绍如何将图片存入数据库。
将图片存入数据库,首先要在数据库中建立一张表,将存储图片的字段类型设为Image类型,用FileStream类、BinaryReader把图片读成字节的形式,赋给一个字节数组,然后用ADO.SqlCommand对象的ExecuteNonQuery()方法来把数据保存到数据库中。
主要代码如下:
privatevoidbutton1_Click(objectsender,EventArgse)
openFileDialog1.Filter="*jpg|*.JPG|*.GIF|*.GIF|*.BMP|*.BMP";
if(openFileDialog1.ShowDialog()==DialogResult.OK)
{
stringfullpath=openFileDialog1.FileName;//文件路径
FileStreamfs=newFileStream(fullpath,FileMode.Open);
byte[]imagebytes=newbyte[fs.Length];
BinaryReaderbr=newBinaryReader(fs);
imagebytes=br.ReadBytes(Convert.ToInt32(fs.Length));
//打开数据
SqlConnectioncon=newSqlConnection("server=(local);uid=sa;pwd=;database=db_05");
con.Open();
SqlCommandcom=newSqlCommand("insertintotb_08values(@ImageList)",con);
com.Parameters.Add("ImageList",SqlDbType.Image);
com.Parameters["ImageList"].Value=imagebytes;
com.ExecuteNonQuery();
con.Close();
}
}
本实例主要介绍如何从数据库中把图片读出来。
实现本实例主要是利用SqlDataReader从数据库中把Image字段值读出来,赋给一个byte[]字节数组,然后使用MemoryStream类与Bitmap把图片读取出来。
主要代码如下:
privatevoidbutton1_Click(objectsender,EventArgse)
{
byte[]imagebytes=null;
//打开数据库
SqlConnectioncon=newSqlConnection("server=(local);uid=sa;pwd=;database=db_05");
con.Open();
SqlCommandcom=newSqlCommand("selecttop1*fromtb_09",con);
SqlDataReaderdr=com.ExecuteReader();
while(dr.Read())
{
imagebytes=(byte[])dr.GetValue
(1);
}
dr.Close();
com.Clone();
con.Close();
MemoryStreamms=newMemoryStream(imagebytes);
Bitmapbmpt=newBitmap(ms);
pictureBox1.Image=bmpt;
}
本实例主要介绍如何只允许输入指定图片格式。
用OpenFileDialog控件打开图片文件,只要将OpenFileDialog控件的Filter属性指定为特定的图片格式即可。
例如,打开.bmp文件的图片,主要代码如下:
this.openFileDialog1.Filter="bmp文件(*.bmp)|*.bmp";
在用pictureBox控件输入图片时,要想统一图片大小,只需把控件的SizeMode属性值设为StretchImage即可,StretchImage值表示图像的大小将调整为控件的大小。
这样,图片的大小就统一了。
ASP.NET下上传图片到数据库,并且读出图片
首先在SQLServer中建立一个图片存储的数库表,ImageDataColumn为图象二进制数据储存字段
,ImageContentTypeColumn为图象文件类型记录字段,ImageDescriptionColumn为储蓄图
象文件说明字段,ImageSizeColumn为储存图象文件长度字段,结构如下:
CREATETABLE[dbo].[ImageStore](
[ImageID][int]IDENTITY(1,1)NOTNULL,
[ImageData][image]NULL,
[ImageContentType][varchar](50)COLLATEChinese_PRC_CI_ASNULL,
[ImageDescription][varchar](200)COLLATEChinese_PRC_CI_ASNULL,
[ImageSize][int]NULL
)ON[PRIMARY]TEXTIMAGE_ON[PRIMARY]
*/
//UpLoadImage.aspx程序内容如下:
<%@PageInherits="UploadImage.UploadImage"SRC="UpLoadImage.cs"
Language="C#"%>
上传图片
cellspacing="0"border="0">
上传图片(选择你要上传的图片) | 320" ACCEPT="text/*"NAME="UP_FILE">
|
文件说明(添加上传图片说明,如: 作者、出处) | TextBoxRUNAT="server"WIDTH="239"ID="txtDescription" MAINTAINSTATE="false"/>
|
LabelRUNAT="server"ID="txtMessage"FORECOLOR="red" MAINTAINSTATE="false"/>
| ButtonRUNAT="server"WIDTH="239"onCLICK="Button_Submit"TEXT="Upload Image"/>
|