C# 将RTF文档保存到SQLITE当中

摘要:
true:false;}//直接保存publicboolUpdateFile{byte[]byteArray=System.Text.Encoding.Default.GetBytes;returnUpdateFile;}调用根据一个存在的RTF文件读取然后保存到数据库中stringid="292450";//abayastringpath=@"C:1.rtf";byte[]b=File.ReadAllBytes;UpdateFile;直接将RichTextBox中的内容保存到数据库中stringid="292440";//abashmentstringrtf=richTextBox1.Rtf;UpdateFile;读取//根据ID从数据库中得到文件的二进制内容publicbyte[]GetBytes{stringsql=$"SELECT*FROMDATA_TBLWHEREid='{id}';";byte[]bt=null;DataTabledt=newDataTable();using{using{adapter.Fill;objectobj=dt.Rows[0]["RTF"];if(obj!
表的结构
CREATE TABLE [DATA_TBL](
 [ID] VARCHAR PRIMARY KEY,
 [TITLE] TEXT,
 [RTF] BINARY,
 [TAG] TEXT);

using System.Data.SQLite;

string ConnectionString = "Data Source = test.db; Version=3";

保存
//根据ID 将RTF文档保存到对应的记录的里面
public bool UpdateFile(string id,byte[] byteFile) {
    int result = -1;
    using (SQLiteConnection conn = new SQLiteConnection(ConnectionString)) {
        conn.Open();
        using (SQLiteCommand cmd = new SQLiteCommand(conn)) {
            string sql = $"UPDATE DATA_TBL SET RTF=@RTF WHERE ID=@ID";
            cmd.CommandText = sql;
            cmd.Parameters.Add("@ID",DbType.String).Value = id;
            cmd.Parameters.Add("@RTF",DbType.Binary).Value = byteFile; // 这个字段要 设置成 BINARY
            result = cmd.ExecuteNonQuery();
         }
     }
     return result != -1 ? true : false;
 }

      //直接保存
       public bool UpdateFile(string id,string Rtf) {
            byte[] byteArray = System.Text.Encoding.Default.GetBytes(Rtf);
            return UpdateFile(id,byteArray);
        }

调用

根据一个存在的RTF文件读取然后保存到数据库中

string id = "292450";//abaya
string path = @"C:1.rtf";
byte[] b = File.ReadAllBytes(path);
UpdateFile(id,b);

直接将RichTextBox中的内容保存到数据库中

string id = "292440";//abashment
string rtf = richTextBox1.Rtf;
UpdateFile(id,rtf);

image

读取
        //根据ID 从数据库中得到文件的二进制内容
        public byte[] GetBytes(string id) {
            string sql = $"SELECT * FROM DATA_TBL WHERE id='{id}';";
            byte[] bt = null;
            DataTable dt = new DataTable();
            using (SQLiteConnection conn = new SQLiteConnection(ConnectionString)) {
                using (SQLiteDataAdapter adapter = new SQLiteDataAdapter(sql,conn)) {
                    adapter.Fill(dt);
                    object obj = dt.Rows[0]["RTF"];
                    if (obj != null && obj != DBNull.Value) {
                        bt = obj as byte[];
                    }
                }
            }
            return bt;
        }

        //从数据库直接读取到richTextBox
         public string ReadRtf(string id) {
             byte[] bt = GetBytes(id);
             return System.Text.Encoding.Default.GetString(bt);
         }

使用

            string id = "292450";
            string tmp = @"C:3.rtf";
            byte[] bt = GetBytes(id);
            File.WriteAllBytes(tmp,bt);
            richTextBox1.LoadFile(tmp);

方法2

从数据库直接读取到richTextBox

//从数据库直接读取到richTextBox
string id = "292440";//abashment
richTextBox1.Rtf = ReadRtf(id);

免责声明:文章转载自《C# 将RTF文档保存到SQLITE当中》仅用于学习参考。如对内容有疑问,请及时联系本站处理。

上篇在Windows 10中截取截图的6种方式 简介常见文本框提示css技巧下篇

宿迁高防,2C2G15M,22元/月;香港BGP,2C5G5M,25元/月 雨云优惠码:MjYwNzM=

相关文章

浅析Android动画(二),属性动画高级实例探究

转载请注明出处!http://www.cnblogs.com/wondertwo/p/5312482.html ObjectAnimator实现属性动画 为了写好Android动画这几篇博客,在动笔之前我是下过很大决心的,我对自己的要求是尽量把一个小知识点写清楚写明白,说白了就是相对于大而全的长篇大论,我更倾向于去写小而美的博客!为了保证在高产的同时能坚...

公众号开发笔记二

前言 微信公众平台开发模板消息,用于公众号向用户发送服务通知,如学生进校门,用校卡滴,就可以在公众号接收服务通知,表明学生进校.在公众号内申请功能,添加模板消息. 只有认证后的服务号才能申请模板消息,需要选择2个行业,MP(维基百科,自由的百科全书),模板消息需要模板的ID,和模板中各种参数,内容以".DATA"结尾,否则视为保留字,模板保留符号"{{...

JAVA通过Map拼接SQL语句(Insert Update语句)

packagecom.lynch.erp.core.util; importjava.util.Map; importorg.apache.commons.collections.MapUtils; importorg.apache.commons.lang3.StringUtils; public classSQLUtils {...

高效的数据压缩编码方式 Protobuf

一. protocol buffers 是什么? Protocol buffers 是一种语言中立,平台无关,可扩展的序列化数据的格式,可用于通信协议,数据存储等。 Protocol buffers 在序列化数据方面,它是灵活的,高效的。相比于 XML 来说,Protocol buffers 更加小巧,更加快速,更加简单。一旦定义了要处理的数据的数据结构之...

OAuth2.0协议专区-Springcloud集成springsecurity oauth2实现服务统一认证,应该时最简单的教程了~

1.配置认证服务器(1) 首先配置springsecurity,其实他底层是很多filter组成,顺序是请求先到他这里进行校验,然后在到oauth /** * @author: gaoyang * @Description: 身份认证拦截 */ @Order(1) @Configuration //注解权限拦截 @EnableGloba...

python基础练习题(题目 递归输出)

day19 --------------------------------------------------------------- 实例027:递归输出 题目 利用递归函数调用方式,将所输入的5个字符,以相反顺序打印出来。 分析:相反顺序可以用列表来,直接pop方法。 1 def reverseprint(a): 2 lit = list(...