将图片等文件保存到sqlite中(c#)
2010-01-04 12:19
746 查看
SqLite.net的dll为System.Data.SQLite.dll,这种dll分为32位、64位和适用于compactframework三种,在引用时要注意,选择正确的dll。
将要保存图片的字段类型设为blob。代码如下:
其中StreamUtil为自定义的一个类:
参考:http://www.kaiyuan8.org/Article/qfuoQyWKDicoYpoirorz.aspx
C#教程:声明和调用扩展方法:http://www.webjx.com/aspnet/2009-04-12/11229.html
http://topic.csdn.net/u/20081024/09/9b2bf0ad-ec15-4b00-9994-3124038ba329.html
该方法主要是利用了 SQLiteParameter 的功能,读取blob字段。代码如下:
将要保存图片的字段类型设为blob。代码如下:
private void savePicture() { using (SQLiteConnection cnn = new SQLiteConnection(dbPath)) { cnn.Open(); using (SQLiteCommand cmd = cnn.CreateCommand()) { //cmd.CommandText = "Create Table test(data Image)"; //cmd.ExecuteNonQuery(); cmd.CommandText = "insert into person values('12',@data,'14','13')"; SQLiteParameter para = new SQLiteParameter("@data", DbType.Binary); string file = @"F:/Image/飞机.png"; FileStream fs = new FileStream(file, FileMode.Open); //StreamUtil su = new StreamUtil(); //byte[] buffer = su.StreamToBytes(fs); byte[] buffer = StreamUtil.ReadFully(fs); fs.Close(); para.Value = buffer; cmd.Parameters.Add(para); cmd.ExecuteNonQuery(); } } }
其中StreamUtil为自定义的一个类:
public static class StreamUtil { const int BufferSize = 8192; public static void CopyTo(Stream input,Stream output) { byte[] buffer = new byte[BufferSize]; int read; while ((read = input.Read(buffer, 0, buffer.Length)) > 0) { output.Write(buffer, 0, read); } } public static byte[] ReadFully(Stream input) { using (MemoryStream tempStream = new MemoryStream()) { CopyTo(input, tempStream); return tempStream.ToArray(); } } }
参考:http://www.kaiyuan8.org/Article/qfuoQyWKDicoYpoirorz.aspx
C#教程:声明和调用扩展方法:http://www.webjx.com/aspnet/2009-04-12/11229.html
http://topic.csdn.net/u/20081024/09/9b2bf0ad-ec15-4b00-9994-3124038ba329.html
该方法主要是利用了 SQLiteParameter 的功能,读取blob字段。代码如下:
FileStream m_filestream = null; try { m_filestream = new FileStream(@"d:/pcinfo/17.jpg", FileMode.Open, FileAccess.Read); //读取图片 SQLiteCommand m_commd2=new SQLiteCommand(); m_commd2.CommandText="UPDATE test1 set timage=@idimage WHERE tparendid=78"; Byte[] m_byte = new Byte[m_filestream.Length]; //存放图片 m_filestream.Read(m_byte,0,m_byte.Length); m_filestream.Close(); SQLiteParameter param_m=new SQLiteParameter("@idimage",DbType.Binary,m_byte.Length, ParameterDirection.Input,false,0,0,null,DataRowVersion.Current,m_byte); m_commd2.Parameters.Add(param_m); m_commd2.Parameters.Add(param_m); //很多参数阿,注意DBType.Binary m_commd2.Connection = m_conn; m_commd2.ExecuteNonQuery(); } catch (SQLiteException ex) { MessageBox.Show("未能存入图片"); }
相关文章推荐
- 将图片等文件保存到sqlite中(c#)
- C# 图片文件保存到XML中
- C#中使用资源文件保存图片和皮肤文件的使用
- C# 单张图片的保存[BLOB保存与文件上传两种方式]与展示
- C#保存文件及图片到数据库中
- C#中使用资源文件保存图片和皮肤文件的使用
- 网络爬虫,用C#做一个网络爬虫demo,功能有保存网页、图片、js文件、等等其他的文件。有界面显示,有代码注释。
- c#接收ios上传图片保存后文件损坏
- c#客户端图片上传到服务器端文件并且把路径保存到SQL数据库
- C# 把图片文件保存到程序集里(借鉴)
- c#从剪贴板取出图片,然后写上字,保存到文件
- 用C#编程从数据库中读取图片数据导进Excel文件的方法(如何从数据库中读取保存的文件,直接打开,中间不保存到本地)
- 用C#编程从数据库中读取图片数据导进Excel文件的方法(如何从数据库中读取保存的文件,直接打开,中间不保存到本地)
- ffmpeg 解析RTSP视频流并间隔保存成视频文件、图片
- VS-c# web程序:gridview保存Excel文件遇到的问题
- Android 保存图片到SQLite,读出SQLite中的图片
- 将bitmap对象保存为一个图片文件
- Android 保存资源文件中的图片到本地相册,并实时刷新的实现方法!
- C#下在图片文件到本地,c#,c#下载,下载图片,下载文件,下载函数
- 使用sqlite保存图片和导出图片