2017-02-08 7 views
0

Я следую за видео youtube, которое создает базовое консольное приложение C#, которое будет создавать и записывать в базу данных SQLite. Код в видео выполняется, но я получаю необработанное исключение, которое гласит, что { «SQL логическая ошибка или отсутствует база данных \ г \ ntable MYTABLE не имеет столбец с именем Name»}Необработанный SQLite Exception

Вот код:

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(); 
     } 
    } 
} 
+2

По крайней мере, у вас есть опечатка в разделе создания –

+0

SQLite не использует скобки –

+0

я только пойманных что. Теперь он делает то, что должен. Благодаря! –

ответ

1

Typo в области 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)"; 

 Смежные вопросы

  • Нет связанных вопросов^_^