csharp,using System;,using System.Data.SQLite;,,class Program,{, static void Main(), {, string connectionString = "Data Source=mydatabase.db;Version=3;";, using (SQLiteConnection connection = new SQLiteConnection(connectionString)), {, connection.Open();, string createTableQuery = "CREATE TABLE IF NOT EXISTS users (id INTEGER PRIMARY KEY, name TEXT)";, using (SQLiteCommand command = new SQLiteCommand(createTableQuery, connection)), {, command.ExecuteNonQuery();, }, Console.WriteLine("Database and table created successfully.");, }, },},
`,,这段代码首先定义了连接字符串,然后使用
SQLiteConnection对象连接到数据库。如果数据库文件不存在,SQLite会自动创建它。通过
SQLiteCommand对象执行一个SQL语句来创建一个名为
users`的表。在C#中建立SQLite数据库通常使用System.Data.SQLite
命名空间下的类,以下是详细步骤和示例代码:
安装SQLite库
确保你的项目中已经安装了SQLite的.NET提供程序,你可以通过NuGet包管理器来安装它,在Visual Studio的“工具”菜单中选择“NuGet包管理器”,然后搜索“System.Data.SQLite”,并安装它。
引入命名空间
在你的C#代码文件中,引入必要的命名空间:
using System; using System.Data.SQLite;
连接到SQLite数据库
要连接到一个SQLite数据库,你需要创建一个SQLite连接对象,如果数据库文件不存在,SQLite会自动创建它,以下是一个示例代码,展示如何连接到一个名为“example.db”的SQLite数据库:
string connectionString = "Data Source=example.db;Version=3;"; // 指定数据库文件路径和版本 using (SQLiteConnection connection = new SQLiteConnection(connectionString)) { connection.Open(); // 打开连接 Console.WriteLine("Connected to the database."); }
创建表
一旦你建立了与数据库的连接,你就可以执行SQL语句来创建表,下面是一个示例,展示了如何创建一个名为“Users”的表,该表包含三个列:“Id”、“Name”和“Age”:
string createTableQuery = @" CREATE TABLE IF NOT EXISTS Users ( Id INTEGER PRIMARY KEY AUTOINCREMENT, Name TEXT NOT NULL, Age INTEGER NOT NULL );"; using (SQLiteConnection connection = new SQLiteConnection(connectionString)) { connection.Open(); SQLiteCommand command = new SQLiteCommand(createTableQuery, connection); command.ExecuteNonQuery(); // 执行SQL语句 Console.WriteLine("Table created or already exists."); }
插入数据
你可以向表中插入数据,以下是一个示例,展示了如何向“Users”表中插入一条记录:
string insertQuery = "INSERT INTO Users (Name, Age) VALUES (@name, @age);"; using (SQLiteConnection connection = new SQLiteConnection(connectionString)) { connection.Open(); SQLiteCommand command = new SQLiteCommand(insertQuery, connection); command.Parameters.AddWithValue("@name", "John Doe"); command.Parameters.AddWithValue("@age", 30); command.ExecuteNonQuery(); // 执行插入操作 Console.WriteLine("Record inserted."); }
查询数据
你可以从表中查询数据,以下是一个示例,展示了如何查询“Users”表中的所有记录:
string selectQuery = "SELECT * FROM Users;"; using (SQLiteConnection connection = new SQLiteConnection(connectionString)) { connection.Open(); SQLiteCommand command = new SQLiteCommand(selectQuery, connection); SQLiteDataReader reader = command.ExecuteReader(); // 执行查询并获取结果 while (reader.Read()) { Console.WriteLine($"Id: {reader["Id"]}, Name: {reader["Name"]}, Age: {reader["Age"]}"); } }
FAQs
问题1:如果数据库文件已经存在,连接时是否会覆盖它?
解答:不会,如果指定的数据库文件已经存在,SQLite连接将直接使用该文件,而不会覆盖或删除它,你可以在连接字符串中指定不同的模式(如只读、读写等),但默认情况下是读写模式。
**问题2:如何在C#中处理SQLite数据库中的事务?
解答:在C#中处理SQLite数据库中的事务非常简单,你可以使用SQLiteTransaction
类来管理事务,以下是一个示例代码,展示了如何在事务中执行多个SQL语句:
using (SQLiteConnection connection = new SQLiteConnection(connectionString)) { connection.Open(); SQLiteTransaction transaction = connection.BeginTransaction(); // 开始事务 try { // 执行多个SQL语句... // 如果一切顺利,提交事务 transaction.Commit(); } catch (Exception ex) { // 如果发生错误,回滚事务 transaction.Rollback(); throw; } }
通过以上步骤和示例代码,你应该能够在C#中成功建立和操作SQLite数据库,实际应用中可能需要处理更多的异常情况和边界条件,以确保数据库操作的稳定性和可靠性。
原创文章,作者:未希,如若转载,请注明出处:https://www.kdun.com/ask/1509419.html
本网站发布或转载的文章及图片均来自网络,其原创性以及文中表达的观点和判断不代表本网站。如有问题,请联系客服处理。
发表回复