2017-02-08 2 views
0

Ich verfolge ein Youtube-Video, das eine grundlegende C# -Konsolen-App erstellt, die in einer SQLite-Datenbank erstellt und geschrieben wird. Der Code im Video ausführt, aber ich bin eine nicht behandelte Ausnahme erhalten, die besagt, dass { „SQL Logikfehler oder Datenbank fehlt \ r \ NTABLE Mytable keine Spalte haben Namen genannt“}Unbehandelte SQLite-Ausnahme

Hier ist der Code:

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

Mindestens Sie haben einen Tippfehler im Abschnitt erstellen –

+0

SQLite nicht Klammern nicht verwendet –

+0

ich, dass gerade gefangen. Jetzt macht es, was es soll. Vielen Dank! –

Antwort

1

Tippfehler im Bereich CREATE TABLE verursachte ein Problem mit den Klammern und geschweiften Klammern. Abschnitt sollte lauten:

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