未处理的 SQLite 异常

Unhandled SQLite Exception

我正在关注一个 youtube 视频,该视频制作了一个基本的 C# 控制台应用程序,该应用程序将创建并写入 SQLite 数据库。视频中的代码执行了,但我收到一个未处理的异常,指出 {"SQL logic error or missing database\r\ntable Mytable has no column named Name"}

代码如下:

using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
using System.Data.SQLite;

namespace SQLiteProject
{
    class Program
    {
        static void Main(string[] args)
        {
            string createQuery = @"CREATE TABLE IF NOT EXISTS
                                    [Mytable] (
                                    [Id} INTEGER NOT NULL PRIMARY KEY AUTOINCREMENT,
                                    [Name] NVARCHAR(2048) NULL,
                                    [Gender] NVARCHAR(2048) NULL)";
            System.Data.SQLite.SQLiteConnection.CreateFile("sample.db3");
            using(System.Data.SQLite.SQLiteConnection conn = new System.Data.SQLite.SQLiteConnection("data source=sample.db3"))
            {
                    using(System.Data.SQLite.SQLiteCommand cmd=new System.Data.SQLite.SQLiteCommand(conn))
                    {
                        conn.Open();
                        cmd.CommandText = createQuery;
                        cmd.ExecuteNonQuery();
                        cmd.CommandText = "INSERT INTO Mytable(Name,Gender) values('Brett','male')";
                        cmd.ExecuteNonQuery();

                        cmd.CommandText = "SELECT * from Mytable";
                        using(System.Data.SQLite.SQLiteDataReader reader = cmd.ExecuteReader())
                        {
                            while (reader.Read())
                            {
                                Console.WriteLine(reader["Name"]+ ":" + "reader['Gender']");
                            }
                            conn.Close();
                        }

                     }
                }
            Console.ReadLine();
        }
    }
}

CREATE TABLE 区域中的拼写错误导致方括号和大括号出现问题。部分应为:

string createQuery = @"CREATE TABLE IF NOT EXISTS
                                    [Mytable] (
                                    [Id] INTEGER NOT NULL PRIMARY KEY AUTOINCREMENT,
                                    [Name] NVARCHAR(2048) NULL,
                                    [Gender] NVARCHAR(2048) NULL)";