没有合适的资源?快使用搜索试试~ 我知道了~
C#从SQL中读取和存入图片.pdf
1.该资源内容由用户上传,如若侵权请联系客服进行举报
2.虚拟产品一经售出概不退款(资源遇到问题,请及时私信上传者)
2.虚拟产品一经售出概不退款(资源遇到问题,请及时私信上传者)
版权申诉
0 下载量 110 浏览量
2021-10-11
00:24:25
上传
评论
收藏 220KB PDF 举报
温馨提示
试读
26页
C#从SQL中读取和存入图片.pdf
资源推荐
资源详情
资源评论
C# 从 SQL 数据库中读取和存入图片
本实例主要介绍如何将图片存入数据库。将图片存入数据库 ,首先要在数据库中
建立一张表 ,将存储图片的字段类型设为 Image 类型 ,用 FileStream 类、
BinaryReader 把图片读成字节的形式 ,赋给一个字节数组 ,然后用
ADO.SqlCommand 对象的 ExecuteNonQuery() 方法来把数据保存到数据库中。
主要代码如下:
private void button1_Click(object sender, EventArgs e)
{
openFileDialog1.Filter = "*jpg|*.JPG|*.GIF|*.GIF|*.BMP|*.BMP";
if(openFileDialog1.ShowDialog()==DialogResult.OK)
{
string fullpath =openFileDialog1.FileName;// 文件路径
FileStream fs = new FileStream(fullpath, FileMode.Open);
byte[] imagebytes =new byte[fs.Length];
BinaryReader br = new BinaryReader(fs);
imagebytes = br.ReadBytes(Convert.ToInt32(fs.Length));
//打开数据库
SqlConnection con = new
SqlConnection("server=(local);uid=sa;pwd=;database=db_05");
con.Open();
SqlCommand com = new SqlCommand("insert into tb_08
values(@ImageList)",con);
com.Parameters.Add("ImageList", SqlDbType.Image);
com.Parameters["ImageList"].Value = imagebytes;
com.ExecuteNonQuery();
con.Close();
}
}
本实例主要介绍如何从数据库中把图片读出来。实现本实例主要是利用
SqlDataReader 从数据库中把 Image 字段值读出来,赋给一个 byte[] 字节数组,
然后使用 MemoryStream 类与 Bitmap 把图片读取出来。主要代码如下:
private void button1_Click(object sender, EventArgs e)
{
byte[] imagebytes = null;
//打开数据库
SqlConnection con = new
SqlConnection("server=(local);uid=sa;pwd=;database=db_05");
con.Open();
SqlCommand com = new SqlCommand("select top 1* from tb_09",
con);
SqlDataReader dr = com.ExecuteReader();
while (dr.Read())
{
imagebytes = (byte[])dr.GetValue(1);
}
dr.Close();
com.Clone();
con.Close();
MemoryStream ms = new MemoryStream(imagebytes);
Bitmap bmpt = new Bitmap(ms);
pictureBox1.Image = bmpt;
}
本实例主要介绍如何只允许输入指定图片格式。用 OpenFileDialog 控件打开图
片文件,只要将 OpenFileDialog 控件的 Filter 属性指定为特定的图片格式即可。
例如,打开 .bmp 文件的图片,主要代码如下 :
this.openFileDialog1.Filter = "bmp 文件 (*.bmp)|*.bmp" ;
在用 pictureBox 控件输入图片时, 要想统一图片大小, 只需把控件的 SizeMode
属性值设为 StretchImage 即可, StretchImage 值表示图像的大小将调整为控件
的大小。这样,图片的大小就统一了。
上一页 首页 下一页
00000000000000000000000000000000000000000000000000000000000000
0000000000000000000000000
ASP.NET 下上传图片到数据库,并且读出图片
首先在 SQL Server 中建立一个图片存储的数库表, ImageData Column 为图象
二进制数据储存字段
,ImageContentType Column 为图象文件类型记录字段, ImageDescription
Column 为储蓄图
象文件说明字段 ,ImageSize Column 为储存图象文件长度字段,结构如下:
CREATE TABLE [dbo].[ImageStore] (
[ImageID] [int] IDENTITY (1, 1) NOT NULL ,
[ImageData] [image] NULL ,
[ImageContentType] [varchar] (50) COLLATE Chinese_PRC_CI_AS NULL ,
[ImageDescription] [varchar] (200) COLLATE Chinese_PRC_CI_AS NULL ,
[ImageSize] [int] NULL
) ON [PRIMARY] TEXTIMAGE_ON [PRIMARY]
*/
//UpLoadImage.aspx 程序内容如下:
<%@ Page Inherits="UploadImage.UploadImage" SRC="UpLoadImage.cs"
Language="C#"%>
<HTML><title> 上传图片 </title>
<BODY bgcolor="#FFFFFF">
<FORM ENCTYPE="multipart/form-data" RUNAT="server" ID="Form1">
<TABLE RUNAT="server" WIDTH="700" ALIGN="left" ID="Table1"
cellpadding="0"
cellspacing="0" border="0">
<TR>
<TD> 上传图片 (选择你要上传的图片 )</TD>
<TD>
<INPUT TYPE="file" ID="UP_FILE" RUNAT="server" STYLE="Width:320"
ACCEPT="text/*" NAME="UP_FILE">
</TD>
</TR>
<TR>
<TD>
文件说明 (添加上传图片说明,如:作者、出处 )
</TD>
<TD>
<asp:TextBox RUNAT="server" WIDTH="239" ID="txtDescription"
MAINTAINSTATE="false" />
</TD>
</TR>
<TR>
<TD>
<asp:Label RUNAT="server" ID="txtMessage" FORECOLOR="red"
MAINTAINSTATE="false" />
</TD>
<TD>
<asp:Button RUNAT="server" WIDTH="239" onCLICK="Button_Submit"
TEXT="Upload
Image" />
</TD>
</TR>
</TABLE>
</FORM>
</BODY>
</HTML>
//-------------------------------------------------------------------
//UpLoadImage.cs 程序内容如下:
using System;
using System.Web;
using System.IO;
using System.Data;
using System.Data.SqlClient;
using System.Web.UI;
using System.Web.UI.WebControls;
using System.Web.UI.HtmlControls;
namespace UploadImage
{
public class UploadImage : Page
{
protected HtmlInputFile UP_FILE; //HtmlControl 、WebControls 控件对象
protected TextBox txtDescription;
protected Label txtMessage;
protected Int32 FileLength = 0; //记录文件长度变量
protected void Button_Submit(System.Object sender, System.EventArgs e) {
HttpPostedFile UpFile = UP_FILE.PostedFile; //HttpPostedFile 对象,用于读取
图象文件属性
FileLength = UpFile.ContentLength; //记录文件长度
try {
if (FileLength == 0)
{ //文件长度为零时
txtMessage.Text = "<b> 请你选择你要上传的文件 </b>";
}
else
{
Byte[] FileByteArray = new Byte[FileLength]; //图象文件临时储存 Byte 数
组
Stream StreamObject = UpFile.InputStream; //建立数据流对像
//读取图象文件数据, FileByteArray 为数据储存体, 0 为数据指针位置、
FileLnegth 为数据长度
StreamObject.Read(FileByteArray,0,FileLength);
//建立 SQL Server 链接
SqlConnection Con = new SqlConnection("Data Source=Localhost;Initial
Catalog=testdb;User ID=sa;Pwd=;");
String SqlCmd = "INSERT INTO ImageStore (ImageData,
ImageContentType, ImageDescription, ImageSize) valueS (@Image,
@ContentType, @ImageDescription, @ImageSize)";
SqlCommand CmdObj = new SqlCommand(SqlCmd, Con);
CmdObj.Parameters.Add("@Image",SqlDbType.Binary, FileLength).value
= FileByteArray;
CmdObj.Parameters.Add("@ContentType", SqlDbType.VarChar,50).value
= UpFile.ContentType; // 记录文件类型
//把其它单表数据记录上传
CmdObj.Parameters.Add("@ImageDescription",
SqlDbType.VarChar,200).value = txtDescription.Text;
//记录文件长度,读取时使用
CmdObj.Parameters.Add("@ImageSize", SqlDbType.BigInt,8).value =
UpFile.ContentLength;
Con.Open();
CmdObj.ExecuteNonQuery();
Con.Close();
txtMessage.Text = "<p><b>OK! 你已经成功上传你的图片 </b>";// 提示上传成
功
}
}
catch (Exception ex)
{
txtMessage.Text = ex.Message.ToString();
剩余25页未读,继续阅读
资源评论
qq_58157133
- 粉丝: 12
- 资源: 11万+
上传资源 快速赚钱
- 我的内容管理 展开
- 我的资源 快来上传第一个资源
- 我的收益 登录查看自己的收益
- 我的积分 登录查看自己的积分
- 我的C币 登录后查看C币余额
- 我的收藏
- 我的下载
- 下载帮助
安全验证
文档复制为VIP权益,开通VIP直接复制
信息提交成功