1、一种是用大对象,即blob型,对c#不了解,但是java、c++中都有专门 *** 作blob的对象,应该是以二进制流的方式走的。但是不建议采用这样的管理方式,会加重数据库、程序负担,即使是手机开发也是如此。
2、图片保存在本地,数据库中用字符串存储地址,这样的方式比较好,也较易实现。但是缺乏安全性,把图片重命名就行了,改个后缀,一般人就不会打开。还是不放心,用二进制加密下就好,这样的程序代价仍然要比存在数据库大对象中要好。
第一步://获取当前选择的图片this.pictureBox1.Image = Image.FromStream(this.openFileDialog1.OpenFile())//获取当前图片的路径string path = openFileDialog1.FileName.ToString()//将制定路径的图片添加到FileStream类中FileStream fs = new FileStream(path, FileMode.Open, FileAccess.Read)//通过FileStream对象实例化BinaryReader对象BinaryReader br = new BinaryReader(fs)//通过BinaryReader类对象的ReadBytes()方法将FileStream类对象转化为二进制数组byte[] imgBytesIn = br.ReadBytes(Convert.ToInt32(fs.Length))第二步://将图片添加到数据库中string sql="insert into pic values(@pic)"SqlParameter[] param = new SqlParameter[] { new SqlParameter("@pic", imgBytesIn) }DBHelper.GetExecuteQuery(sql, param)第三步://将图片从数据库中取出string sql="select * from pic where id=0"SqlDataReader reader = DBHelper.GetExecuteReader(sql, null)MemoryStream mss = null欢迎分享,转载请注明来源:内存溢出
评论列表(0条)