保存图象到Sql Server,并且读取显示
2006-12-18 15:24
323 查看
现有图象数据表
CREATE TABLE [ENTR_Image] (
[EIGuid] [nvarchar] (50) COLLATE Chinese_PRC_CI_AS NOT NULL CONSTRAINT [DF__ENTR_Imag__EIGui__2C3F4C1F] DEFAULT (newid()),
[EImage] [image] NOT NULL CONSTRAINT [DF__ENTR_Imag__EImag__2D337058] DEFAULT (''),
[VImage] [image] NOT NULL CONSTRAINT [DF__ENTR_Imag__VImag__2E279491] DEFAULT (''),
[OperationTime] [datetime] NOT NULL CONSTRAINT [DF__ENTR_Imag__Opera__2F1BB8CA] DEFAULT (getdate()),
PRIMARY KEY CLUSTERED
(
[EIGuid]
) ON [PRIMARY]
) ON [PRIMARY] TEXTIMAGE_ON [PRIMARY]
GO
需要把指定的图片添加到数据库里面
打开图片到picturebox里面
private void button1_Click(object sender, System.EventArgs e)
private void button2_Click(object sender, System.EventArgs e)
private byte[] ImageToStream(string fileName)
{
Bitmap image = new Bitmap(fileName);
MemoryStream stream = new MemoryStream();
image.Save(stream, System.Drawing.Imaging.ImageFormat.Bmp);
return stream.ToArray();
}
保存byte[]到数据表
private void StoreImage(byte[] content,byte[] connect1)
{
// if (MainForm.conn.State.Equals(ConnectionState.Closed))
// MainForm.conn.Open();
string str_Conn="server=SERVER-DBT;database=LogERP;uid=logerp;pwd=logerpok;Max Pool Size=20000;";
try
{
SqlConnection sqlconn=new SqlConnection(str_Conn);
sqlconn.Open();
SqlCommand insert = new SqlCommand("Insert into ENTR_Image(EImage,VImage) values (@EImage,@VImage)");
insert.Connection=sqlconn;
SqlParameter imageParameter =
insert.Parameters.Add("@EImage", SqlDbType.Binary);
imageParameter.Value = content;
imageParameter.Size = content.Length;
SqlParameter imageParameter1 =
insert.Parameters.Add("@VImage", SqlDbType.Binary);
imageParameter1.Value = connect1;
imageParameter1.Size = connect1.Length;
int i=insert.ExecuteNonQuery();
sqlconn.Close();
MessageBox.Show(i.ToString());
}
catch(Exception ex)
{
MessageBox.Show(ex.Message.ToString());
MessageBox.Show(ex.StackTrace.ToString ());
}
finally
{
// MainForm.conn.Close();
}
}
新增以后,根据guid查询图像
private string str_Guid;
public string str_ImageGuid
{
set
{
str_Guid=value;
}
}
private void ReadImage()
{
string str_Conn="server=172.17.100.132;database=Northwind;uid=sa;pwd=19791225;Max Pool Size=20000;";
try
{
//根据GUID读取图片
SqlConnection sqlconn=new SqlConnection(str_Conn);
sqlconn.Open();
string str_Sql="select EImage from ENTR_Image where EIGuid='"+str_Guid+"'";
SqlCommand cmd=new SqlCommand(str_Sql);
cmd.Connection=sqlconn;
byte [] content = (byte[] )cmd.ExecuteScalar();
try
{
MemoryStream stream = new MemoryStream(content);
pictureBox1.Image= Image.FromStream(stream);
}
catch
{
}
str_Sql="select VImage from ENTR_Image where EIGuid='"+str_Guid+"'";
cmd=new SqlCommand(str_Sql);
cmd.Connection=sqlconn;
content = (byte[] )cmd.ExecuteScalar();
try
{
MemoryStream stream = new MemoryStream(content);
pictureBox2.Image= Image.FromStream(stream);
}
catch
{
}
sqlconn.Close();
}
catch (Exception ex)
{
MessageBox.Show(ex.Message.ToString());
MessageBox.Show(ex.StackTrace.ToString ());
}
}
byte[]的初始化
ClassEnt_rsDrawing.Browser=byt;
现在如果转换过来
把sql里面的image字段的内容读入文件
代码如下:
private void GetFileFromDataBase(byte[] byt,string str_Filename)
辅助代码,保存对话框
private string fun_savefilename()
public byte[] GetImage(string str_Guid)
public static byte[] GetByteImage(string str_Sql)
private void ImageLoad(byte[] byt_Image)
{
DevExpress.XtraEditors.PictureEdit pb = new DevExpress.XtraEditors.PictureEdit();
Form f= new Form();
f.Controls.Add(pb);
f.MinimizeBox = false;
f.MaximizeBox=false;
pb.Dock=DockStyle.Fill;
pb.Properties.SizeMode = DevExpress.XtraEditors.Controls.PictureSizeMode.Stretch ;
f.StartPosition = FormStartPosition.CenterScreen;
pb.Properties.PictureStoreMode = DevExpress.XtraEditors.Controls.PictureStoreMode.ByteArray;
pb.EditValue = byt_Image;
f.Show();
}
CREATE TABLE [ENTR_Image] (
[EIGuid] [nvarchar] (50) COLLATE Chinese_PRC_CI_AS NOT NULL CONSTRAINT [DF__ENTR_Imag__EIGui__2C3F4C1F] DEFAULT (newid()),
[EImage] [image] NOT NULL CONSTRAINT [DF__ENTR_Imag__EImag__2D337058] DEFAULT (''),
[VImage] [image] NOT NULL CONSTRAINT [DF__ENTR_Imag__VImag__2E279491] DEFAULT (''),
[OperationTime] [datetime] NOT NULL CONSTRAINT [DF__ENTR_Imag__Opera__2F1BB8CA] DEFAULT (getdate()),
PRIMARY KEY CLUSTERED
(
[EIGuid]
) ON [PRIMARY]
) ON [PRIMARY] TEXTIMAGE_ON [PRIMARY]
GO
需要把指定的图片添加到数据库里面
打开图片到picturebox里面
private void button1_Click(object sender, System.EventArgs e)
private void button2_Click(object sender, System.EventArgs e)
private byte[] ImageToStream(string fileName)
{
Bitmap image = new Bitmap(fileName);
MemoryStream stream = new MemoryStream();
image.Save(stream, System.Drawing.Imaging.ImageFormat.Bmp);
return stream.ToArray();
}
保存byte[]到数据表
private void StoreImage(byte[] content,byte[] connect1)
{
// if (MainForm.conn.State.Equals(ConnectionState.Closed))
// MainForm.conn.Open();
string str_Conn="server=SERVER-DBT;database=LogERP;uid=logerp;pwd=logerpok;Max Pool Size=20000;";
try
{
SqlConnection sqlconn=new SqlConnection(str_Conn);
sqlconn.Open();
SqlCommand insert = new SqlCommand("Insert into ENTR_Image(EImage,VImage) values (@EImage,@VImage)");
insert.Connection=sqlconn;
SqlParameter imageParameter =
insert.Parameters.Add("@EImage", SqlDbType.Binary);
imageParameter.Value = content;
imageParameter.Size = content.Length;
SqlParameter imageParameter1 =
insert.Parameters.Add("@VImage", SqlDbType.Binary);
imageParameter1.Value = connect1;
imageParameter1.Size = connect1.Length;
int i=insert.ExecuteNonQuery();
sqlconn.Close();
MessageBox.Show(i.ToString());
}
catch(Exception ex)
{
MessageBox.Show(ex.Message.ToString());
MessageBox.Show(ex.StackTrace.ToString ());
}
finally
{
// MainForm.conn.Close();
}
}
新增以后,根据guid查询图像
private string str_Guid;
public string str_ImageGuid
{
set
{
str_Guid=value;
}
}
private void ReadImage()
{
string str_Conn="server=172.17.100.132;database=Northwind;uid=sa;pwd=19791225;Max Pool Size=20000;";
try
{
//根据GUID读取图片
SqlConnection sqlconn=new SqlConnection(str_Conn);
sqlconn.Open();
string str_Sql="select EImage from ENTR_Image where EIGuid='"+str_Guid+"'";
SqlCommand cmd=new SqlCommand(str_Sql);
cmd.Connection=sqlconn;
byte [] content = (byte[] )cmd.ExecuteScalar();
try
{
MemoryStream stream = new MemoryStream(content);
pictureBox1.Image= Image.FromStream(stream);
}
catch
{
}
str_Sql="select VImage from ENTR_Image where EIGuid='"+str_Guid+"'";
cmd=new SqlCommand(str_Sql);
cmd.Connection=sqlconn;
content = (byte[] )cmd.ExecuteScalar();
try
{
MemoryStream stream = new MemoryStream(content);
pictureBox2.Image= Image.FromStream(stream);
}
catch
{
}
sqlconn.Close();
}
catch (Exception ex)
{
MessageBox.Show(ex.Message.ToString());
MessageBox.Show(ex.StackTrace.ToString ());
}
}
byte[]的初始化
ClassEnt_rsDrawing.Browser=byt;
现在如果转换过来
把sql里面的image字段的内容读入文件
代码如下:
private void GetFileFromDataBase(byte[] byt,string str_Filename)
辅助代码,保存对话框
private string fun_savefilename()
public byte[] GetImage(string str_Guid)
public static byte[] GetByteImage(string str_Sql)
private void ImageLoad(byte[] byt_Image)
{
DevExpress.XtraEditors.PictureEdit pb = new DevExpress.XtraEditors.PictureEdit();
Form f= new Form();
f.Controls.Add(pb);
f.MinimizeBox = false;
f.MaximizeBox=false;
pb.Dock=DockStyle.Fill;
pb.Properties.SizeMode = DevExpress.XtraEditors.Controls.PictureSizeMode.Stretch ;
f.StartPosition = FormStartPosition.CenterScreen;
pb.Properties.PictureStoreMode = DevExpress.XtraEditors.Controls.PictureStoreMode.ByteArray;
pb.EditValue = byt_Image;
f.Show();
}
相关文章推荐
- 保存图象到Sql Server,并且读取显示
- c# winform 读取oracle中blob字段的图片并且显示到pictureBox里,保存进库
- 如何向SQL Server中保存bmp图象以及读取
- web中,如何读取Word内容(包含表格,但不包含图片)并且显示在页面中或保存进数据库中
- web中,如何读取Word内容(包含表格,但不包含图片)并且显示在页面中或保存进数据库中
- 如何向SQL Server中保存bmp图象以及读取
- 读取文本文件的内容,显示爱gridview中,并且鼠标点中那行显示行明细。
- 图形的读取、转灰度图、显示、保存
- 用js如何实现读取xml数据并且显示在html中
- DIB位图文件的格式、读取、保存和显示
- 读取pdf并且在web页面中显示
- Python OpenCV学习笔记之:图像读取,显示及保存
- C# 保存图像文件到SQL SERVER数据库,再读取该文件并显示
- java 读取并且显示 txt 文件
- 利用opencv类库在MFC显示摄像头视频并且保存摄像头视频
- python读取,显示,保存mnist图片
- 图像读取显示保存操作
- OpenCV之视频读取与帧的提取、显示及保存
- OpenCV学习笔记(一):读取、显示、保存图片
- Python读取windows下记事本保存的UTF-8格式的内容,首行数据显示不正常的解决办法