C本地数据存储,如何有效保存数据至本地数据库?
- 行业动态
- 2025-03-07
- 2
System.Data.SQLite
命名空间来操作SQLite
数据库。,3. 创建或连接到一个本地SQLite数据库文件。,4. 定义要保存的数据表结构。,5. 插入数据到表中。,6. 查询数据以验证是否成功保存。 步骤二:编写代码,“
csharp,using System;,using System.Data.SQLite;class Program,{, static void Main(), {, // 连接到SQLite数据库,如果不存在则创建, string connectionString = "Data Source=localData.db;Version=3;";, using (var connection = new SQLiteConnection(connectionString)), {, connection.Open(); // 创建新表, string createTableQuery = "CREATE TABLE IF NOT EXISTS Users (Id INTEGER PRIMARY KEY, Name TEXT)";, using (var command = new SQLiteCommand(createTableQuery, connection)), {, command.ExecuteNonQuery();, } // 插入数据, string insertQuery = "INSERT INTO Users (Name) VALUES (@Name)";, using (var command = new SQLiteCommand(insertQuery, connection)), {, command.Parameters.AddWithValue("@Name", "John Doe");, command.ExecuteNonQuery();, } // 查询数据, string selectQuery = "SELECT FROM Users";, using (var command = new SQLiteCommand(selectQuery, connection)), {, using (var reader = command.ExecuteReader()), {, while (reader.Read()), {, Console.WriteLine($"Id: {reader["Id"]}, Name: {reader["Name"]}");, }, }, }, }, },},
`
,这段代码首先创建一个名为
localData.db
的SQLite数据库(如果尚不存在),然后定义一个
Users`表来存储用户信息。它向该表中插入一条记录,并从表中查询所有记录以验证数据是否正确保存。
在C#中,本地数据保存数据库有多种方式,以下是一些常见的方法:
1、使用SQLite数据库
特点:SQLite是一个轻量级的嵌入式数据库引擎,它不需要单独的服务器进程,整个数据库存储在一个单一的磁盘文件中,便于部署和分发,它支持大部分标准SQL语法,对于小型应用程序来说是一个很好的选择。
安装与配置:首先需要在项目中安装SQLite的NuGet包,可以使用以下命令安装:Install-Package System.Data.SQLite
,然后创建数据库连接对象,using (var conn = new SQLiteConnection("Data Source=mydatabase.db;Version=3;")) { conn.Open(); // 在这里执行数据库操作 }
数据操作示例:创建表、插入数据、查询数据等操作与其他关系型数据库类似,使用标准的SQL语句,例如创建一个名为Users
的表:CREATE TABLE Users (Id INTEGER PRIMARY KEY, Name TEXT, Age INTEGER)
;插入一条数据:INSERT INTO Users (Name, Age) VALUES ('John', 30)
;查询所有用户:SELECT FROM Users
。
2、使用LocalDB
特点:LocalDB是SQL Server的精简版,专为开发人员设计,易于安装和使用,它适用于开发和测试环境,提供了与SQL Server相似的功能和工具。
安装与配置:需要先安装SQL Server LocalDB,可以从微软官方网站下载,安装完成后,在项目中创建数据库连接字符串,string connectionString = @"Data Source=(localdb)MSSQLLocalDB;Initial Catalog=MyDatabase;Integrated Security=True;Connect Timeout=30;"
,然后使用SqlConnection
类连接到数据库,并进行相应的操作。
数据操作:与使用其他SQL Server数据库类似,可以使用ADO.NET或Entity Framework等技术进行数据操作,使用ADO.NET插入数据:using (SqlConnection conn = new SqlConnection(connectionString)) { conn.Open(); using (SqlCommand cmd = new SqlCommand("INSERT INTO Users (Name, Age) VALUES (@Name, @Age)", conn)) { cmd.Parameters.AddWithValue("@Name", "Tom"); cmd.Parameters.AddWithValue("@Age", 25); cmd.ExecuteNonQuery(); } }
。
3、使用实体框架核心(Entity Framework Core)
特点:Entity Framework Core是微软推出的一个轻量级、可扩展的数据访问框架,它支持多种数据库,包括SQLite、SQL Server、MySQL等,它通过代码定义模型和关系,自动生成数据库表结构,并提供丰富的LINQ查询功能,大大提高了数据访问的效率和可维护性。
安装与配置:首先安装Entity Framework Core的NuGet包,Install-Package Microsoft.EntityFrameworkCore
,然后定义数据模型,例如定义一个简单的User
类:public class User { public int Id { get; set; } public string Name { get; set; } public int Age { get; set; } }
,接着创建数据库上下文类,继承自DbContext
,并在其中配置数据库连接字符串和模型:public class MyDbContext : DbContext { public DbSet<User> Users { get; set; } protected override void OnConfiguring(DbContextOptionsBuilder optionsBuilder) { optionsBuilder.UseSqlite("Data Source=mydatabase.db"); } }
。
数据操作:可以通过数据库上下文类进行数据的添加、删除、修改和查询等操作,例如添加一个新用户:using (var context = new MyDbContext()) { User user = new User { Name = "Jack", Age = 28 }; context.Users.Add(user); context.SaveChanges(); }
;查询所有用户:using (var context = new MyDbContext()) { var users = context.Users.ToList(); }
。
以下是两个关于C#本地数据保存数据库的常见问题及解答:
1、问:SQLite和LocalDB应该选择哪一个?
答:如果应用程序是小型的、单机版的,对数据库性能要求不高,且希望数据库易于部署和携带,那么SQLite是一个不错的选择,它不需要额外的服务器配置,整个数据库就是一个文件,非常适合嵌入到应用程序中,而如果是在开发过程中需要一个与SQL Server类似的开发环境,或者希望利用SQL Server的一些高级特性进行开发和测试,那么LocalDB会更合适,它可以与Visual Studio等开发工具无缝集成,方便开发人员进行调试和测试。
2、问:如何在C#中使用实体框架核心(Entity Framework Core)连接SQLite数据库?
答:首先确保安装了Entity Framework Core和SQLite的NuGet包,然后在项目中定义数据模型类,例如public class Product { public int Id { get; set; } public string Name { get; set; } public decimal Price { get; set; } }
,接着创建数据库上下文类,并配置使用SQLite数据库,例如public class AppDbContext : DbContext { public DbSet<Product> Products { get; set; } protected override void OnConfiguring(DbContextOptionsBuilder optionsBuilder) { optionsBuilder.UseSqlite("Data Source=products.db"); } }
,最后就可以在代码中使用数据库上下文类进行数据操作了,如添加产品信息:using (var context = new AppDbContext()) { Product product = new Product { Name = "Laptop", Price = 999.99m }; context.Products.Add(product); context.SaveChanges(); }
。