首页 > 数据库 >用嵌入式sqlite部署winform应用程序

用嵌入式sqlite部署winform应用程序

时间:2023-05-16 22:34:47浏览次数:48  
标签:sqlite outputStream CopyStream Stream 嵌入式 static var inputStream winform

Embedded Resource表示数据库已嵌入到您的dll中。Copy to output directory设置在这种情况下不适用,它用于Build Action: Content

嵌入数据库后,您基本上必须在首次使用时将其取消嵌入。为此,将其从Assembly中读取并将其存储到文件中。

class EmbeddedResourceTest
{
    public static void Test()
    {
        string path = Path.Combine(Environment.GetFolderPath(Environment.SpecialFolder.ApplicationData), "Test.db");

        using(var resourceStream = typeof(EmbeddedResourceTest).Assembly.GetManifestResourceStream("Test.db"))
        {
            using(var fileStream = File.OpenWrite(path))
            {
                CopyStream(resourceStream, fileStream);
            }
        }

        // now access database using 'path'
    }

    public static void CopyStream(Stream inputStream, Stream outputStream)
    {
        CopyStream(inputStream, outputStream, 4096);
    }

    public static void CopyStream(Stream inputStream, Stream outputStream, int bufferLength)
    {
        var buffer = new byte[bufferLength];
        int bytesRead;
        while ((bytesRead = inputStream.Read(buffer, 0, bufferLength)) > 0)
        {
            outputStream.Write(buffer, 0, bytesRead);
        }
    }
}

 

标签:sqlite,outputStream,CopyStream,Stream,嵌入式,static,var,inputStream,winform
From: https://www.cnblogs.com/qingjiawen/p/17407064.html

相关文章

  • 嵌入式开发的一些经典书籍
    一、嵌入式开发领域有很多值得阅读的书籍,以下是一些经典书籍推荐:1.《嵌入式系统软件设计》(MichaelJ.Pont):本书介绍了嵌入式系统的基础知识和应用开发过程中常见的问题及解决方案。2.《嵌入式系统设计与实践》(黄翔等):本书全面介绍了嵌入式系统的设计方法、开发流程以及实际应用案例,......
  • 报表解决方案Telerik Reporting - 轻松完成嵌入式报表开发
    假设您是一名开发人员,思考一下您的用户将从Web报表设计器中得到什么吗?他们能突出异常数据吗?他们能够从头开始创建一个报告吗?让我们站在商业用户的角度,看看这到底是怎么回事。TelerikReportingWebDesigner是一个多功能且用户友好的基于Web的工具,使业务用户能够轻松创建功能齐......
  • Python数据库篇:sqlite3、mysql、sqlalchemy
    一:sqlite3importsqlite3conn=sqlite3.connect("test.db")cursor=conn.cursor()cursor.execute("createtableuser(idvarchar(20)primarykey,namevarchar(20))")cursor.execute("insertintouser(id,name)values(\'1\�......
  • C# opc ua客户端实例源码,带ef6+sqlite。 代码有完整的注解,及包括所有
    C#opcua客户端实例源码,带ef6+sqlite。代码有完整的注解,及包括所有的链接库和程序结构思维图。纯学习资料YID:2855638904489888......
  • 微信使用SQLite?
    SQLite是一个被大家低估的数据库,但有些人认为它是一个不适合生产环境使用的玩具数据库。事实上,SQLite是一个非常可靠的数据库,它可以处理TB级的数据,但它没有网络层。接下来,本文将与大家共同探讨SQLite在过去一年中最新的SQL功能。SQLite“只是”一个库,它不是传统意义上的服......
  • SQLiteTableTool
    //提供了一些关于表操作的快捷方法(不是必要组件),当然,SQLiteStudio之类的强大且专业的工具软件也是不可或缺的//使用提示:通过在一个脚本的字段上添加[SerializeToTableCol]特性可以直接读取到TableTool的列表里,然后可以根据这个列表创建表(当然也可以手动填写这个表再创建)using......
  • SQLiteManager 第二部分
    //一些常用的查询方法(其实如果熟悉SQL的话,直接用ExecuteQuery更方便)//这部分直接复制到SQLiteManager类里面就可以//SQLite没有逻辑型,一般用0/1表示//在比照文本型时,别忘了手动给string参数值加上单引号publicList<TableColInfo>GetTableColInfos(stringtable......
  • C# Winform 界面操作异步回调 AsyncCallback
    usingSystem;usingSystem.Collections.Generic;usingSystem.Threading;usingSystem.Windows.Forms;namespaceWindowsFormsApp1{publicpartialclassForm1:Form{publicForm1(){InitializeComponent();m......
  • Winform 遮罩懒人处理法
    前言之前有个项目需要执行一个略微耗时的操作大概五六七八九十秒这样子,这个时候程序不能做其他操作,只能等待操作完成。为了提升一丝使用体验同时让Winform程序看上去高级一点......
  • Django如何把SQLite数据库转换为Mysql数据库
    大部分新手刚学Django开发的时候默认用的都是SQLite数据库,上线部署的时候,大多用的却是Mysql。那么我们应该如何把数据库从SQLite迁移转换成Mysql呢?之前我们默认使用的是SQLite数据库,我们开发完成之后,里面有许多数据。如果我们想转换成Mysql数据库,那我们先得把旧数据从SQLite导出......