首页
学习
活动
专区
工具
TVP
发布
精选内容/技术社群/优惠产品,尽在小程序
立即前往

C# SQLite在C#安装与操作

SQLite 介绍 SQLite,是一款轻型数据库,用于本地数据储存。...先说说优点,它占用资源非常低,在嵌入式设备需要几百K内存就够了;作为轻量级数据库,他处理速度也足够快;支持容量级别为T级;独立: 没有额外依赖;开源;支持多种语言; 我用途 在项目开发,...驱动 http://system.data.sqlite.org/index.html/doc/trunk/www/index.wiki 这三个文件,在项目中,引用之后就可以进行创建数据库查询数据操作...2.使用vs提供包管理工具Nuget进行项目引用。 Nuget包管理工具 搜索SQLite安装对应包,下载完成后就自动在项目中引用了。...使用 创建数据库 1 //创建一个数据库 2 SQLiteConnection.CreateFile("Database.sqlite"); 操作数据库 //创建连接字符串 SQLiteConnection

2K21
您找到你想要的搜索结果了吗?
是的
没有找到

SQLite在C#安装与操作

SQLite 介绍 SQLite,是一款轻型数据库,用于本地数据储存。...先说说优点,它占用资源非常低,在嵌入式设备需要几百K内存就够了;作为轻量级数据库,他处理速度也足够快;支持容量级别为T级;独立: 没有额外依赖;开源;支持多种语言; 我用途 在项目开发,...这三个文件,在项目中,引用之后就可以进行创建数据库查询数据操作。 2.使用vs提供包管理工具Nuget进行项目引用。 ? Nuget包管理工具 ?...搜索SQLite安装对应包,下载完成后就自动在项目中引用了。...使用 创建数据库 1 //创建一个数据库 2 SQLiteConnection.CreateFile("Database.sqlite"); 操作数据库 ?

2.6K30

C#Socket简单使用

大家好,又见面了,我是你们朋友全栈君。 以前学过Socket,后来没怎么用过,就基本忘了,所以闲来时重新回顾学习一番....一.Socket概念 Socket其实并不是一个协议,而是为了方便使用TCP或UDP而抽象出来一层,是位于应用层和传输控制层之间一组接口....双向通信连接实现数据交换,连接一端成为一个Socket....二.网络通信三要素 IP地址(网络上主机设备唯一标识) 端口号(定位程序) 有效端口:0~65535,其中0~1024由系统使用,开发中一般使用1024以上端口....传输协议(用什么样方式进行交互) 常见协议:TCP(面向连接,提供可靠服务),UDP(无连接,传输速度快) 三.Socket通信流程 四.C#Socket简单使用步骤 第一步:服务端监听某个端口

90520

C# 使用Task执行异步操作

执行状态 为什么要使用 Task 线程是创建并发底层工具,因此具有一定局限性。...任务是可组合——使用延续将它们串联在一起。它们可以使用线程池减少启动延迟,而且它们可以通过TaskCompletionSource使用回调方法,避免多个线程同时等待I/O密集操作。...Task和Thread一样,位于System.Threading命名空间下 与线程相比,Task是一个更高级抽象概念,它标识一个通过或不通过线程实现并发操作。...Task 介绍 Task 类表示单个操作不返回一个值,通常以异步方式执行。Task 对象是一个中心思想 基于任务异步模式 首次引入.NET Framework 4 。...大多数情况下,lambda 表达式用于指定任务是执行工作。 Task 简单实现 通过使用Task构造函数来创建任务,并调用Start方法来启动任务并执行异步操作

2.7K10

使用C#操作注册表

这节讲一下使用C#操作注册表。...首先来了解一下,什么是注册表,注册表是Windows特有的一个东西,百度百科对其解释如下:Windows注册表(Registry)实质上是一个庞大数据库,它存储着下面这些内容:用户计算机软、硬件有关配置和状态信息...创建注册表子项: 注册表宏观上是一个树结构,从数据层面上看它是一个键值对形式,具体创建流程如下: using Microsoft.win32;//操作注册表所在程序集 RegistryKey...Registry.CurrentUser.CreateSubKey("Charles_Test");//创建子节点 key.SetValue("Test","admin");//添加一行数据 key.Close();//关闭连接 这个就是在当前用户注册表创建了一个名为...使用完毕后将其关掉。 我们可以在注册表查看到: 快捷启动注册表方式:win+r 启动运行窗口,然后键入regedit即可。

79030

DocX在C#基本操作方法

用了一个星期把园子里2016年有关.net文章都看了,有些只是大致看了一下,在看同时也在记录一些通用方法。...发现有很多对NPOI文档,主要是操作Excl方法,却很少有关文档类型方法。    ...在项目开发,一般需要对文档进行操作,但是使用微软提供插件,需要安装一些程序,并且如果使用wps类文档软件就无法操作了,第三方插件DocX就可以很好解决这些文档,结合官方提供文档,稍作修改,总结如下一些方法...:     1.创建一个具有超链接、图像和表文档: /// /// 创建一个具有超链接、图像和表文档。...p1.InsertTableAfterSelf(table); // 在文档插入一个新段落。

2.1K80

C#反射解析及使用.

1、对C#反射机制理解 2、概念理解后,必须找到方法去完成,给出管理主要语法 3、最终给出实用例子,反射出来dll方法 参考: C#反射,MSDN编程指南 反射是一个程序集发现及运行过程,通过反射可以得到...在C#,我们要使用反射,首先要搞清楚以下命名空间中几个类关系:     System.Reflection命名空间     (1)   AppDomain:应用程序域,可以将其理解为一组程序集逻辑容器...2点上说明)     使用这个方法时候, CLR会应用一定策略来查找程序集,实际上CLR按如下顺序来定位程序集:     ⑴如果程序集有强名称,在首先在全局程序集缓(GAC)查找程序集。    ...⑵如果程序集强名称没有正确指定或GAC找不到,那么通过配置文件元素指定URL来查找     ⑶如果没有指定强名称或是在GAC找不到,CLR会探测特定文件夹:     假设你应用程序目录是...这就是在第1点提到Load方法比LoadFrom方法执行效率高原因。另外,由于可能把程序集作为"数据文件"来加载,所以使用 LoadFrom从不同路径加载相同程序集时候会导致重复加载。

2K140

学习|C#线程AutoResetEvent使用

——《微卡智享》 本文长度为3106字,预计阅读8分钟 前言 前一篇《学习|C#EventHandler委托使用》介绍了EventHandler简单使用,本篇主要介绍线程AutoResetEvent...上面就是AutoResetEvent主要方法,从上面的主要方法我们可以看到,实现读卡器每100耗秒进行检测,原来通过线程是sleep进行处理,现在可以使用WaitOne方式,并且通过这个方法,我们可以在外部实现读卡器重连调用...本项目场景 本项目(开头视频)因为读卡器使用网络通讯,所以我们要考虑出现异常情况下实现读卡器自动重连。 如果存在网络中断时候我们要考虑到自动重连。...实际项目中对读卡器操作没法贴上来,这里我们就接着一个DEMO,模拟一下这个场景。 代码演示 ? 微卡智享 接着我们threaddemo,在CTest我们开始改造。 ?...我们在循环操作里面加入一个随机数生成,取值为0到13内 如果取值数字小于10,那就正常发送数据。 如果取值数字等于10,那就直接抛出异常,然后在异常内部模拟Reset重连读卡器。

1.1K20

C#如何使用Dapper

我们可以将它放在项目的任何位置来实现数据到对象ORM操作,它具备体积小且速度快特点。...使用ORM好处是增、删、改会很快,不用自己写sql语句,并且程序中大量从数据库读数据然后创建model,并为model字段赋值,这些ORM都可以替我们完成。...ORM给开发带来便利同时,性能也是一个不得不考虑问题。一般ORM性能和原生sql相比性能都差了不少,但Dapper性能还不错,与DbHelperSQL相比性能高出很多。...使用在存储过程插入、更新和删除情况下,代码如下: string sql = "INSERT INTO user(name) Values (@Name);"; using (var connection...User类型 var users= connection.Query(sql).ToList(); } 带参数查询 在Dapper查询中使用参数,代码如下: using (var

1.3K20

C#如何使用ArrayPool

C#,数组是一种常见数据结构,用于存储一系列相同类型元素。在使用数组时,一个关键方面是内存管理。...然而,频繁数组创建和销毁操作可能导致内存碎片化,降低程序性能。为了解决这个问题,C#引入了ArrayPool类,它允许我们更有效地管理数组内存。...三、示例代码 下面是一个简单示例代码,演示了如何使用 ArrayPool 在 C# 管理数组内存。...在这个示例,我们创建一个泛型类 ArrayProcessor,其中包含了从池中获取数组、使用数组进行操作以及将数组还回池逻辑。...在需要频繁使用小块内存场景,特别是对性能要求较高应用,ArrayPool 是一个有力工具。 六、结论 ArrayPool 在C#为内存管理提供了轻量、高效解决方案。

18110

C#原子操作Interlocked,你真的了解吗?

我们可以看到在真正做这个Interlocked.Exchange操作时候,并没有直接去修改5F2DFCCh地址上数据,但是在做cmp操作时候由于我们比较对象是_flag变量,所以还是继续使用了5F2DFCCh...那么是不是可以这么来理解:【如果说Interlocked内部操作与当前上下文使用并不是同一个CPU核心】,那么这个“判断依据”并不是像代码上写这样,因为我们预期是肯定一样(变量都是同一个)。...理由是做Interlocked时候在CPU1高速缓存,另一个在CPU2上操作加载数据还是内存。其中CPU1往内存同步数据(将寄存器值赋值给_flag这个全局变量)有一个非常短时间差。...四、结语   总结一下:   使用Interlocked做CAS本身是一个CPU操作。数据是放在CPU寄存器交换。但是我们判断变量是个静态全局变量,持有的是这个引用地址。   ...也就是出现问题流程是:   1.从传入ref引用地址加载数据到CPU寄存器   2.寄存器做交换并且返回原始值,但是更新引用地址操作并不是在这个上下文中同步操作

1.2K30

【转】基于C#WinFormDataGridView控件操作汇总

基于C#WinFormDataGridView控件操作汇总 一、单元格内容操作 *****// 取得当前单元格内容 Console.WriteLine(DataGridView1...; *******DataGridView 行用户删除操作自定义: 1) 无条件限制行删除操作。 默认时,DataGridView 是允许用户进行行删除操作。...如果设置 DataGridView对象AllowUserToDeleteRows属性为 False 时, 用户行删除操作就被禁止了。 // 禁止DataGridView1行删除操作。...在该事件处理除了可以设定默认值以外,还可以指定某些特定单元格ReadOnly属性等。...比起使用循环遍历,使用该事件来设定右键菜单效率更高。但是,在DataGridView使用了DataSource绑定而且是 VirtualMode时候,该事件将不被引发。

5.1K50

C#Log4使用教程

C#Log4使用教程[完全图解] 没有日志系统是不完整系统,下面小赵四步(三分钟)教会你使用Log4;我去,感觉上面有满满教科书式感觉。...-- 将日志以回滚文件形式写到文件 --> ``` 第三步 在Program中注册---------这是第一种注册方式 (在这里我踩了一个坑,一定要通过Path.Combine()这种方式注入,我刚开始使用是第一种,结果两个小时原地踏步走...,我还以为是log4有问题,我在mvc项目中,做法完全一样,但是到NET5就出现了这个问题,在看老张哲学文章时候发现了这个坑,我试了一下,完全ok,我就想上面的那个他也不报错,但就是没有日志)...,在控制器里面先构造,在使用 执行调试,就在项目文件夹下面看到生成日志了 项目地址放在https://github.com/PrideJoy/NetTemple

94620

C#Abstract 、Virtual和Override使用

除了在声明和调用语法上不同外,抽象属性行为与抽象方法一样。在静态属性上使用abstract修饰符是错误。在派生类,通过包括使用 override 修饰符属性声明,可以重写抽象继承属性。...虚拟成员实现可由派生类重写成员更改。调用虚方法时,将为重写成员检查该对象运行时类型。将调用大部分派生类该重写成员,如果没有派生类重写该成员,则它可能是原始成员。默认情况下,方法是非虚拟。...和抽象方法相同点是都用了override关键字进行重写方法,不同点是抽象方法必须存在于抽象类,而子类必须重写,除非子类也是抽象。...4. base和this区别 1)base作用:用于从派生类访问基类成员,调用基类上已被其他方法重写方法。指定创建派生类实例时应调用基类构造函数。...注:从静态方法中使用 base 关键字是错误。 2)区别: base 是子类引用父类,用于在派生类访问重写基类成员。

1.2K20

使用C# 对CPU卡基本操作封装

Github 地址:https://github.com/zifeiniu/CPUCardLib 项目需求及简介: 公司要求将用户相关信息储存到射频卡,之前项目使用Mifare类型卡,只储存了用户的卡...Mifare S70容量也不够,遂使用CPU卡,FM1280,可达80KBEEROM存储。...在CSDN上花积分下载了一个C#读取CPU卡Demo,恶心是不仅没有源码,而且互操作调用封装DLL,还指定使用他们读卡器,打广告还带赚我积分。。 然后自己写了一个,开源一下,供大家改改。。...(德卡读卡器DLL貌似只有32位) 添加新读卡器,只需要实现接口ICPUCardReader即可。接口很简单,只要实现发送byte[],返回byte[]即可。 CpuCard类封常用操作命令。...目前只实现外部身份验证,没写秘钥操作相关。 创建二进制文件,写入文件,读取文件,记录日志等。 遇到坑 最大二进制文件: 文档没有说明二进制文件最大可用多少大。

98120

使用C# 对CPU卡基本操作封装

Github 地址:https://github.com/zifeiniu/CPUCardLib 项目需求及简介: 公司要求将用户相关信息储存到射频卡,之前项目使用Mifare类型卡,只储存了用户的卡...Mifare S70容量也不够,遂使用CPU卡,FM1280,可达80KBEEROM存储。...在CSDN上花积分下载了一个C#读取CPU卡Demo,恶心是不仅没有源码,而且互操作调用封装DLL,还指定使用他们读卡器,打广告还带赚我积分。。...介绍 已实现两种设备接口 Pcsc,使用CAR122U读卡器(PcscCardReader)(https://github.com/danm-de/pcsc-sharp),只要实现PCSC驱动读卡器都可以使用...CpuCard类封常用操作命令。 目前只实现外部身份验证,没写秘钥操作相关。 创建二进制文件,写入文件,读取文件,记录日志等。 遇到坑 最大二进制文件: 文档没有说明二进制文件最大可用多少大。

1.3K20
领券