2017-02-08 21 views
0

私は、SQLiteデータベースを作成してSQLiteデータベースに書き込む基本的なC#コンソールアプリケーションを作成するYouTubeのビデオに従っています。動画内のコードが実行されますが、私はここで未処理のSQLite例外

{「SQLロジックエラーまたはデータベースの欠落は、\ rを\ mytableはntable名前という名前の列を持っていない」}と述べている未処理の例外を取得していますコードです:

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

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)";