C#操作SQLite数据库方法小结

关于C#操作SQLite数据库方法小结,我可以提供以下攻略:

1. 安装SQLite

在使用SQLite之前,需要先安装SQLite数据库,在Windows上可以从官方网站下载SQLite安装程序进行安装。

2. 创建SQLite数据库

为了进行SQLite数据库的操作,需要使用以下命令创建连接并打开数据库:

SQLiteConnection conn = new SQLiteConnection("Data Source=test.db;Version=3;");
conn.Open();

该命令将会打开test.db数据库,并返回一个SQLiteConnection连接对象。

3. 创建表格

接着,使用以下命令创建表格:

string query = "CREATE TABLE IF NOT EXISTS customers (id INTEGER PRIMARY KEY AUTOINCREMENT, name TEXT, email TEXT);";
SQLiteCommand cmd = new SQLiteCommand(query, conn);
cmd.ExecuteNonQuery();

该命令创建了一个名为"customers"的表格,并包含三个字段:id,name和email。

4. 插入数据

以下命令将向"customers"表格中插入数据:

string query = "INSERT INTO customers (name, email) VALUES (@name, @email)";
SQLiteCommand cmd = new SQLiteCommand(query, conn);
cmd.Parameters.AddWithValue("@name", "John Doe");
cmd.Parameters.AddWithValue("@email", "johndoe@example.com");
cmd.ExecuteNonQuery();

该命令向"customers"表格中插入一条数据,其中"name"列为"John Doe","email"列为"johndoe@example.com"。

5. 查询数据

要查询"customers"表格中所有的数据可以使用以下代码:

string query = "SELECT * FROM customers";
SQLiteCommand cmd = new SQLiteCommand(query, conn);
SQLiteDataReader reader = cmd.ExecuteReader();
while (reader.Read())
{
    int id = reader.GetInt32(0);
    string name = reader.GetString(1);
    string email = reader.GetString(2);
}

该命令将会返回"customers"表格中所有的数据,包括id,name和email列的数据。

示例说明

以下是两个示例说明:

示例1

在这个例子中,我们将通过创建连接、创建表格、插入数据、查询数据等操作,创建一个简单的"students"表格,并将两个学生信息插入到该表格中:

using System.Data.SQLite;
using System;

namespace SQLiteTest
{
    class Program
    {
        static void Main(string[] args)
        {
            SQLiteConnection conn = new SQLiteConnection("Data Source=students.db;Version=3;");
            conn.Open();

            string query = "CREATE TABLE IF NOT EXISTS students (id INTEGER PRIMARY KEY AUTOINCREMENT, name TEXT, age INTEGER);";
            SQLiteCommand cmd = new SQLiteCommand(query, conn);
            cmd.ExecuteNonQuery();

            query = "INSERT INTO students (name, age) VALUES (@name, @age)";
            cmd = new SQLiteCommand(query, conn);
            cmd.Parameters.AddWithValue("@name", "Tom");
            cmd.Parameters.AddWithValue("@age", 18);
            cmd.ExecuteNonQuery();

            cmd = new SQLiteCommand(query, conn);
            cmd.Parameters.AddWithValue("@name", "Jessie");
            cmd.Parameters.AddWithValue("@age", 20);
            cmd.ExecuteNonQuery();

            query = "SELECT * FROM students";
            cmd = new SQLiteCommand(query, conn);
            SQLiteDataReader reader = cmd.ExecuteReader();
            while (reader.Read())
            {
                int id = reader.GetInt32(0);
                string name = reader.GetString(1);
                int age = reader.GetInt32(2);
                Console.WriteLine("ID: {0}, Name: {1}, Age: {2}", id, name, age);
            }

            conn.Close();
        }
    }
}

示例2

在这个例子中,我们将逐步创建一个可以管理学生信息的控制台应用程序:

using System.Data.SQLite;
using System;

namespace SQLiteTest
{
    class Program
    {
        static void Main(string[] args)
        {
            Console.WriteLine("Welcome to Student Management System!");

            string menu = "1. Show all students\n2. Add a student\n3. Exit\nEnter your choice:";
            bool exit = false;

            SQLiteConnection conn = new SQLiteConnection("Data Source=students.db;Version=3;");
            conn.Open();

            string query = "CREATE TABLE IF NOT EXISTS students (id INTEGER PRIMARY KEY AUTOINCREMENT, name TEXT, age INTEGER);";
            SQLiteCommand cmd = new SQLiteCommand(query, conn);
            cmd.ExecuteNonQuery();

            while (!exit)
            {
                Console.Write(menu);
                string choice = Console.ReadLine();

                switch (choice)
                {
                    case "1":
                        query = "SELECT * FROM students";
                        cmd = new SQLiteCommand(query, conn);
                        SQLiteDataReader reader = cmd.ExecuteReader();
                        while (reader.Read())
                        {
                            int id = reader.GetInt32(0);
                            string name = reader.GetString(1);
                            int age = reader.GetInt32(2);
                            Console.WriteLine("ID: {0}, Name: {1}, Age: {2}", id, name, age);
                        }
                        break;
                    case "2":
                        Console.Write("Enter student name:");
                        string name = Console.ReadLine();
                        Console.Write("Enter student age:");
                        int age = int.Parse(Console.ReadLine());
                        query = "INSERT INTO students (name, age) VALUES (@name, @age)";
                        cmd = new SQLiteCommand(query, conn);
                        cmd.Parameters.AddWithValue("@name", name);
                        cmd.Parameters.AddWithValue("@age", age);
                        cmd.ExecuteNonQuery();
                        break;
                    case "3":
                        exit = true;
                        break;
                    default:
                        Console.WriteLine("Invalid choice! Please enter a valid choice.");
                        break;
                }
            }

            conn.Close();
        }
    }
}

该程序将提供一个菜单,允许用户查看所有已注册的学生并添加新学生。

本站文章如无特殊说明,均为本站原创,如若转载,请注明出处:C#操作SQLite数据库方法小结 - Python技术站

(0)
上一篇 2023年5月22日
下一篇 2023年5月22日

相关文章

  • 五个嵌入式C语言中的实用技巧分享

    下面是“五个嵌入式C语言中的实用技巧分享”的完整攻略: 1. 利用位运算提高效率 位运算是嵌入式开发中非常常见的操作,因为它可以大幅提高程序效率。以下是一些常见的位运算技巧: (1) 判断奇偶性 使用&运算符可以判断一个数是奇数还是偶数,比如: int x = 13; if (x & 1) { printf("x是奇数\n&quot…

    C 2023年5月23日
    00
  • 深入理解c/c++ 内存对齐

    深入理解C/C++内存对齐攻略 什么是内存对齐 内存对齐是为了效率而生。现代 CPU 的内存存储是以字节为单位的,每个变量被加载到内存时,它们都会被分配一个地址。但是,CPU 在处理内存的时候,通常会以块为单位的方式处理:如果我们尝试将不同类型的变量加载到同一个块中,则需要考虑块的大小,以哪种顺序分配变量的内存空间等。因此,内存对齐是指将每个变量(或结构体的…

    C 2023年5月22日
    00
  • C程序 插入排序

    下面是关于”C程序 插入排序”的完整使用攻略。 插入排序是什么? 插入排序是一种简单直观的、比较常用的排序算法。其基本思想是将待排序的数组分成两部分,已排序和未排序,然后将未排序的元素一个一个插入到已排序部分的正确位置上,直到整个数组都被排序。 插入排序的实现 下面是一份C程序的插入排序实现,以进行升序排序为例。 #include <stdio.h&g…

    C 2023年5月9日
    00
  • Firebug 字幕文件JSON地址获取代码

    下面是“Firebug 字幕文件JSON地址获取代码”的完整攻略。 一、背景介绍 Firebug是一款非常强大的浏览器调试工具,它可以帮助开发者在开发过程中进行代码审查、JS调试、修改CSS等功能。Firebug具有很多的扩展插件,其中之一就是Firecaption,可以帮助用户获取电影字幕文件JSON地址。本攻略主要讲解Firecaption的使用方法。 …

    C 2023年5月23日
    00
  • CMD命令行高级教程精选合编合集

    CMD命令行高级教程精选合编合集 CMD命令行是Windows操作系统中的一个强大工具,可用于管理系统、操作文件、安装软件等功能。下面将为大家提供CMD命令行高级教程精选合编合集,帮助大家学习掌握CMD命令行的高级技巧和用法。 一、CMD命令行常用技巧 1. 磁盘和文件夹操作 使用cd命令进入指定目录,如进入D盘test文件夹: cd D:\test 使用d…

    C 2023年5月22日
    00
  • C++ 如何判断四个点是否构成正方形

    判断四个点是否构成正方形是一个常见的问题,可以使用数学方法进行判断,也可以利用C++语言编写代码对四个点进行判断。 一、使用数学方法进行判断 如果四个点能构成正方形,那么它们应该满足以下条件: 四个点的四条边相等。 对角线相等。 两条对边之间的角度均为90度。 如果以上条件都满足,则四个点能构成正方形。 二、利用C++语言编写代码进行判断 以下是C++代码示…

    C 2023年5月23日
    00
  • C/C++根据年月日计算星期几(蔡勒公式篇)

    C/C++根据年月日计算星期几(蔡勒公式篇) 背景 在日常生活中,经常需要计算某个日期是星期几,比如周末安排、节日调休等。本文将介绍一种根据年月日计算星期几的方法——蔡勒公式,使用C/C++实现。 蔡勒公式 公式说明 蔡勒公式是一种利用数学方法,通过年月日计算星期几的算法。其中涉及到一些复杂的数学运算,但相比其他计算方法,它具有“精确、易懂、快速”的特点。 …

    C 2023年5月23日
    00
  • MySQL 字符串拆分操作(含分隔符的字符串截取)

    下面就来详细讲解一下“MySQL 字符串拆分操作(含分隔符的字符串截取)”的完整攻略。 一、引言 在MySQL中,字符串拆分操作指的是将一个字符串按照指定的字符分隔后,将其拆分成多个子字符串,并分别保存到一个数组或者表中。常见的字符串拆分操作有用逗号、空格等分隔符将一组字符串拆分成多个子字符串。 在字符串拆分的操作中,很常见的一种需求是一个含有分隔符的字符串…

    C 2023年5月23日
    00
合作推广
合作推广
分享本页
返回顶部