基于C#+SQLite开发数据库应用的示例

SQLite数据库,小巧但功能强大;并且是基于文件型的数据库,驱动库就是一个dll文件,有些开发工具
甚至不需要带这个dll,比如用Delphi开发,用一些三方组件;数据库也是一个文件,虽然是个文件,但却
具有关系型数据库的大多数特征,查询语句也是长得基本一样,所以对应学习数据库操作很方便。
比起前微软的Access数据库那只能说,SQLite强大的太多。

在 Visual Studio 中,可以通过以下步骤安装:

打开 Visual Studio,点击 "工具" -> "NuGet 包管理器" -> "管理解决方案的 NuGet 包" - 在搜索框中输入 "SQLite",然后安装 "System.Data.SQLite" 包。

打开VS,新建一个.NET项目,选择 C# Windows 桌面,Windows窗体应用(.NET Framework)

界面上拖放相应控件

关键事件代码 如下

        private void button8_Click(object sender, EventArgs e){string dataSource = "test.db"; // 数据库文件名// 连接数据库using (SQLiteConnection connection = new SQLiteConnection($"Data Source={dataSource};Version=3;")){connection.Open(); // 打开连接// 创建表string createTableQuery = "CREATE TABLE IF NOT EXISTS Customers (Id INTEGER PRIMARY KEY, Name TEXT, Age INT,Phone TEXT)";using (SQLiteCommand createTableCommand = new SQLiteCommand(createTableQuery, connection)){createTableCommand.ExecuteNonQuery(); // 执行创建表的SQL语句}// 插入数据string insertDataQuery = "INSERT INTO Customers (Name, Age, Phone) VALUES (@Name, @Age, @Phone)";using (SQLiteCommand insertDataCommand = new SQLiteCommand(insertDataQuery, connection)){insertDataCommand.Parameters.AddWithValue("@Name", "John"); // 设置参数值,避免SQL注入insertDataCommand.Parameters.AddWithValue("@Age", 25);insertDataCommand.Parameters.AddWithValue("@Phone", "123456");insertDataCommand.ExecuteNonQuery(); // 执行插入数据的SQL语句}// 查询数据string selectDataQuery = "SELECT * FROM Customers";using (SQLiteCommand selectDataCommand = new SQLiteCommand(selectDataQuery, connection)){using (SQLiteDataReader reader = selectDataCommand.ExecuteReader()){while (reader.Read()){int id = Convert.ToInt32(reader["Id"]); string name = Convert.ToString(reader["Name"]);int age = Convert.ToInt32(reader["Age"]);string phone = Convert.ToString(reader["Phone"]);Console.WriteLine($"ID: {id}, Name: {name}, Age: {age}, Phone: {phone}");}}}SQLiteCommand sqlCommand = new SQLiteCommand("select * from Customers", connection);sqlCommand.ExecuteNonQuery();DataTable dataTable = new DataTable("Customers");SQLiteDataAdapter sqlAdapter = new SQLiteDataAdapter(sqlCommand);sqlAdapter.Fill(dataTable);dataGridView1.DataSource = dataTable.DefaultView;sqlAdapter.Update(dataTable);}}

程序运行结果

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.rhkb.cn/news/483426.html

如若内容造成侵权/违法违规/事实不符,请联系长河编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

生态环境一体化智慧监管平台

在数字化和智能化的浪潮中,生态环境保护与治理正迎来革命性的变化。生态环境一体化智慧监管平台的建设,不仅响应了这一趋势,而且为中国式现代化的生态治理提供了新的解决方案。本文将深度分析该平台的建设内容,探讨其在推动生态文…

3.4 朴素贝叶斯算法

3.4 朴素贝叶斯算法 朴素? 假设:特征与特征之间是相互独立的 应用:文本分类,单词作为特征 3.4.1 什么是朴素贝叶斯算法 朴素贝叶斯(Naive Bayes)是一种基于贝叶斯定理的简单概率分类器,它假…

使用Mybatis-Plus时遇到的报错问题及解决方案

创建Maven项目后&#xff0c;一个个手动添加spring-boot和mybatis-plus依赖冲突问题 解决方案&#xff1a;找一个现成的pom.xml文件替换后重新加载&#xff08;以下提供java8&#xff0c;对应的spring-boot,mybatis-plus依赖&#xff09; <?xml version"1.0" en…

VSCode如何关闭Vite项目本地自启动

某些情况下VSCode打开Vite项目不需要自动启动&#xff0c;那么如何关闭该功能 文件>首选项>设置 搜索vite 将Vite:Auto Start 勾选取消即可

物联网——WatchDog(监听器)

看门狗简介 独立看门狗框图 看门狗原理&#xff1a;定时器溢出&#xff0c;产生系统复位信号&#xff1b;若定时‘喂狗’则不产生系统复位信号 定时中断基本结构&#xff08;对比&#xff09; IWDG键寄存器 独立看门狗超时时间 WWDG(窗口看门狗) WWDG特性 WWDG超时时间 由于…

在办公室环境中用HMD替代传统显示器的优势

VR头戴式显示器&#xff08;HMD&#xff09;是进入虚拟现实环境的一把钥匙&#xff0c;拥有HMD的您将能够在虚拟现实世界中尽情探索未知领域&#xff0c;正如如今的互联网一样&#xff0c;虚拟现实环境能够为您提供现实中无法实现的或不可能实现的事。随着技术的不断进步&#…

黑马2024AI+JavaWeb开发入门Day04-SpringBootWeb入门-HTTP协议-分层解耦-IOCDI飞书作业

视频地址&#xff1a;哔哩哔哩 讲义作业飞书地址&#xff1a;day04作业&#xff08;IOC&DI&#xff09; 作业很简单&#xff0c;主要是练习拆分为三层架构controller、service、dao&#xff0c;并基于IOC & DI进行解耦。 1、结构&#xff1a; 2、代码 网盘链接&…

【iOS】多线程基础

【iOS】多线程基础 文章目录 【iOS】多线程基础前言进程与线程进程进程的状态进程的一个控制结构进程的上下文切换 线程为什么要用线程什么是线程线程和进程的关系线程的上下文切换 线程和进程的优缺点 小结 前言 笔者由于对于GCD不是很了解&#xff0c;导致了项目中网络请求哪…

Android矩阵Matrix在1张宽平大Bitmap批量绘制N个小Bitmap,Kotlin(1)

Android矩阵Matrix在1张宽平大Bitmap批量绘制N个小Bitmap&#xff0c;Kotlin&#xff08;1&#xff09; import android.graphics.Bitmap import android.graphics.BitmapFactory import android.graphics.Canvas import android.graphics.Color import android.graphics.Matri…

vue2+svg+elementui实现花瓣图自定义el-select回显色卡图片

项目需要实现花瓣图&#xff0c;但是改图表在echarts&#xff0c;highCharts等案例中均未出现&#xff0c;有类似的韦恩图&#xff0c;但是和需求有所差距&#xff1b; 为实现该效果&#xff0c;静态图表上采取svg来手动绘制花瓣&#xff1a; 确定中心点&#xff0c;以该点为中…

二百七十八、ClickHouse——将本月第一天所在的那一周视为第一周,无论它是从周几开始的,查询某个日期是本月第几周

一、目的 ClickHouse指标表中有个字段week_of_month&#xff0c;含义是这条数据属于本月第几周。 而且将本月第一天所在的那一周视为第一周&#xff0c;无论它是从周几开始的。比如2024-12-01是周日&#xff0c;即12月第一周。而2024-12-02是周一&#xff0c;即12月第二周 二…

快充协议IC支持全协议,内部集成LDO支持输出电压3.3V,支持宽电压范围3.3~30V

随着快充技术的不断发展&#xff0c;越来越多的电子产品都使用上了快充&#xff0c;市面上大多数受电端取电芯片只有取电功能&#xff0c;而有些产品则需要更多功能支持&#xff0c;例如产品需要快充支持又要读取电压&#xff0c;就只能在使用取电协议芯片的同时再增加一颗串口…

深入傅里叶级数与傅里叶变换:从基础到应用

傅里叶分析是数学、物理和工程领域的一项基础工具&#xff0c;其核心思想是将复杂的信号或函数分解为一系列简单的正弦和余弦函数的叠加。本文将带你从傅里叶级数入门&#xff0c;逐步深入傅里叶变换的概念及其应用场景。 一、傅里叶级数&#xff1a;周期信号的分解 1. 什么是傅…

brew安装mongodb和php-mongodb扩展新手教程

1、首先保证macos下成功安装了Homebrew&#xff0c; 在终端输入如下命令&#xff1a; brew search mongodb 搜索是不是有mongodb资源&#xff0c; 演示效果如下&#xff1a; 2、下面来介绍Brew 安装 MongoDB&#xff0c;代码如下&#xff1a; brew tap mongodb/brew brew in…

记录一次网关异常

记一次网关异常 网关时不时就会出现下面的异常。关键是不知道什么时候就会报错&#xff0c;并且有时候就算什么都不操作&#xff0c;也会导致这个异常。 ERROR org.springframework.scheduling.support.TaskUtils$LoggingErrorHandler - Unexpected error occurred in schedul…

使用Python和OpenCV自动检测并去除图像中的字幕

在图像处理和视频编辑领域&#xff0c;手动划分区域以定位和处理特定元素&#xff08;如字幕&#xff09;是一项耗时且劳动密集型的工作。专业人士常常需要花费大量时间来确保每一帧中的字幕都被精确地定位和移除&#xff0c;这不仅效率低下&#xff0c;而且容易出错。本文介绍…

Algorithm:河内之塔

1. 说明 河内之塔&#xff08;Towers of Hanoi&#xff09;是法国人 M.Claus&#xff08;Lucas&#xff09;于1883年从泰国带至法国的&#xff0c;河内为越战时北越的首都&#xff0c;即现在的胡志明市&#xff1b;1883年法国数学家 Edouard Lucas 曾提及这个故事&#xff0c;据…

A109 PHP+MYSQL+LW+网上论坛网站 军事BBS系统的设计与实现 源码+文档 全套 教程

网上军事论坛网站系统 1.项目摘要2. 研究背景3.项目功能4.界面展示5.源码获取 1.项目摘要 随着计算机网络的普及&#xff0c;如今越来越多的论坛类网站也是数不胜数&#xff0c;各种类型的论坛交流网站&#xff0c;深受当前网友们的喜欢。网上军事论坛网站的成立&#xff0c;是…

【Nacos01】消息队列与微服务之Nacos 介绍和架构

Nacos Nacos 介绍和架构 什么是Nacos https://nacos.io/ https://github.com/alibaba/nacos Nacos /nɑ:kəʊs/ 是 Dynamic Naming and Configuration Service的首字母简称 是阿里巴巴开源的一个基于JAVA语言的更易于构建云原生应用的动态服务发现、配置管理和服务管理平台…

FolderMove 3.0 |文件夹安全转移,释放C盘空间

FolderMove v3.0是一款可以一键移动文件到其他磁盘的小工具。原版是全英文软件&#xff0c;但提供了汉化无限制版。软件体积小巧&#xff0c;只有约200KB&#xff0c;使用非常简单&#xff0c;无需安装&#xff0c;绿色环保。运行时选择需要移动的文件夹目录即可。FolderMove会…