需要借用一个C#在SQL2000中上传图片和下载图片的程序,谢谢了。
解决方案 »
- 这问题我两天都没搞定,大家帮我看看
- 用colorDialog设置的颜色,怎么转化成Brushes.Black形式
- \u5df2 这个是什么字 如何计算
- wpf中datagrid中数据显示问题
- 小弟要用C#调用C++写的dll,现在调用报错,说是参数不对,请众位大虾指点!!谢谢!!!只剩58分了可用了,别嫌分少
- C#下面可以用什么替代Vb下的GetObject和CreateObject阿
- 程序怎样被分给多个人开发?
- 如何在一个windows服务程序里获得该服务程序的路径
- 这个小程序中有条语句不明白!关于return的!
- mvc 样式 js 没效果
- 如何datagridview的值传到ACCESS中
- 一道有趣的C#笔试题,很有意思!
FileStream fs = new FileStream(path, FileMode.Open, FileAccess.Read); //using System.IO; FileMode.Open,
byte[] picbyte = new byte[fs.Length];
BinaryReader br = new BinaryReader(fs);
picbyte = br.ReadBytes(Convert.ToInt32(fs.Length)); string str = "insert into users(PIC) values(@PIC)";
SqlCommand com = new SqlCommand(str, con);
SqlDataAdapter da = new SqlDataAdapter(com);
com.Parameters.Add("@PIC", SqlDbType.Image).Value = picbyte;
读取图片
byte[] pic=null;
string str = "select name from test where id=1";//此处只选取第一张图片
string strcon = "server= . ;database = test; integrated security=SSPI";
SqlConnection con = new SqlConnection(strcon);
con.Open();
SqlCommand com = new SqlCommand(str,con);
SqlDataReader dr = com.ExecuteReader();
while (dr.Read())
{
pic = (byte[])dr.GetValue(0);
}
MemoryStream ms = new MemoryStream(pic);
Image map = Image.FromStream(ms, true);
pictureBox1.Image = map;
try
{
FileInfo info=new FileInfo(Path);
//创建一字节数组,用来存储图像文件.(数组的长度是图像文件的长度)
byte[] Content=new byte[info.Length];
//打开文件并用他初始化一个文件流对象
FileStream ImageFileStream=info.OpenRead();
//将文件内容写入字节数组
ImageFileStream.Read(Content,0,Content.Length);
//关闭文件流
ImageFileStream.Close();
//创建一个Sql命令对象,用来插入记录
SqlCommand Command=new SqlCommand("INSERT Into Images(Description,ImageFile,ImageSize,ImageType) Values(@Description,@ImageFile,@ImageSize,@ImageType)",this.MySqlCon);
//图像的描述信息
SqlParameter imageDescriptionParameter=new SqlParameter("@Description",SqlDbType.NVarChar);
imageDescriptionParameter.Value=this.txtImage.Text;
Command.Parameters.Add(imageDescriptionParameter);
//图像的数据字节数组
SqlParameter imageFileParameter=new SqlParameter("@ImageFile",SqlDbType.Image);
imageFileParameter.Value=Content;
Command.Parameters.Add(imageFileParameter);
//图像的大小信息
SqlParameter imageSizeParameter=new SqlParameter("@ImageSize",SqlDbType.Int);
imageSizeParameter.Value=Content.Length;
Command.Parameters.Add(imageSizeParameter);
//图像的类型新信息
SqlParameter imageTypeParameter=new SqlParameter("@ImageType",SqlDbType.NVarChar);
imageTypeParameter.Value=obj.Extension;
Command.Parameters.Add(imageTypeParameter);
//打开数据库连接
this.MySqlCon.Open();
//执行 Sql 语句
Command.ExecuteNonQuery();
//关闭数据库连接
this.MySqlCon.Close();
MessageBox.Show("图像文件 " + obj.FullName + " 成功上传到数据库!");
}
catch(Exception Ezone)
{
MessageBox.Show(Ezone.Message);
}
/// 从数据库读取图像
try
{
//创建一个Sql命令对象,用来查询记录
SqlCommand Command=new SqlCommand("select * from Images order by ImageID DESC",this.MySqlCon);
//打开数据库连接
this.MySqlCon.Open();
//执行Sql语句
SqlDataReader MyReader=Command.ExecuteReader(CommandBehavior.CloseConnection);
MyReader.Read();
//创建一个内存流对象并用ImageFile字段,ImageSize字段初始化他
MemoryStream MyMemoryStream=new MemoryStream((byte[])MyReader["ImageFile"],0,Convert.ToInt32(MyReader["ImageSize"]));
//创建一个 Image 对象,并赋值给 Picture对象的 Image 属性
this.ImgPictureBox.Image=Image.FromStream(MyMemoryStream);
//关闭内存流
MyMemoryStream.Close();
MyReader.Close();
}
catch(Exception Ezone)
{
MessageBox.Show(Ezone.Message);
}
/////////今天下午刚做的,正好给你看看!!!
http://www.cnblogs.com/cnyyl/archive/2008/08/28/830357.html