文件插入到sqlserver

  • 格式:doc
  • 大小:37.00 KB
  • 文档页数:3

功能实现核心代码如下:
//存储文件打开对话框中所选取的图片到数据库中
存储文件打开对话框中所选取的图片到数据库中
//存储文件打开对话框中所选取的图片到数据库中
this.picView.ImageLocation = openFileDlg.FileName;
using (SqlConnection cn = new SqlConnection(@"Data Source=.\SQLE XPRESS;Initial Catalog=Picture;Integrated Security=True"))
{
try
{
strID = Path.GetFileNameWithoutExtension(openFileDlg.F ileName);
strSql = "INSERT INTO image_table(ID,Pic) VALUES('
" + strID + "',@Pic)";
using (SqlCommand cmd = new SqlCommand(strSql, cn))
{
cmd.Parameters.Add("@Pic", SqlDbType.Image).Valu
e = File.ReadAllBytes(this.picView.ImageLocation);
cn.Open();
cmd.ExecuteNonQuery();
cn.Close();
}
}
catch (SqlException sqle)
{
MessageBox.Show(sqle.Message);
}
}
//从数据库中读取树控件中所选节点所对应的图片显示给用户
从数据库中读取树控件中所选节点所对应的图片显示给用户
//从数据库中读取树控件中所选节点所对应的图片显示给用户
using (SqlConnection cn = new SqlConnection(@"Data Source=.\SQLEX PRESS;Initial Catalog=Picture;Integrated Security=True"))
{
strSql = "SELECT Pic FROM image_table WHERE ID='" + e.Node. Text + "'";
using (SqlCommand cmd = new SqlCommand(strSql,cn))
{
cn.Open();
this.picView.Image = Image.FromStream(new MemoryStrea m((byte[])cmd.ExecuteScalar(),false));
cn.Close();
}
}
附:数据库中Pictures表的建表T-SQL语句
数据库中Pictures表的建表T-SQL语句
USE[Picture]
GO
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO
CREATE TABLE[dbo].[image_table](
[ID][nchar](10) COLLATE Chinese_PRC_CI_AS NOT NULL,
[Pic][image]NOT NULL,
CONSTRAINT[PK_image_table]PRIMARY KEY CLUSTERED
(
[ID]ASC
)WITH (PAD_INDEX =OFF, IGNORE_DUP_KEY =OFF) ON[PRIMARY]
) ON[PRIMARY] TEXTIMAGE_ON [PRIMARY]
如何将图片,Mp3 ,或是一些二进制类型的数据插入到sqlserver,或是Oracle 数据库 . 方法是通过流进行操作.
创建一张测试表(sqlserver2000)
create table [pictable] (
[id] [int] identity (1, 1) not null ,
[img] [image] not null
) on [primary] textimage_on [primary]
go
插入数据库的方法(sqlserver2000)
this.getConnection() 为获得连接的方法.
public void insertPic(String path)...{
Connection con = this.getConnection();
String sql = "insert into photo values(?)" ;
try ...{
PreparedStatement pstm = con.prepareStatement(sql);
InputStream is = new FileInputStream("C:\My Doc....\1.jpg");
pstm.setBinaryStream(1, is, is.available());
int count = pstm.executeUpdate();
if(count>0)...{
System.out.println("插入成功");
}else...{
System.out.println("插入失败");
}
is.close();
pstm.close();
con.close();
} catch (Exception e) ...{
e.printStackTrace();
}
}。