0

背景 + 問題:

(Begginer here ) C# コードにあるリストの値を sqlite db に入力したいと思います。これは、finisarsqlite Web サイトから取得した sqlite コードです。「seq#」などの独自の列名を作成して、少し変更しました。

しかし、次のエラーが表示されます: 「認識されないトークン #」

多分私の構文はオフですか?

コード:

             // [snip] - As C# is purely object-oriented the following lines must be put     into a class:

        // We use these three SQLite objects:
        SQLiteConnection sqlite_conn;
        SQLiteCommand sqlite_cmd;
        SQLiteDataReader sqlite_datareader;

        // create a new database connection:
        sqlite_conn = new SQLiteConnection("Data Source=database.db;Version=3;New=True;Compress=True;");

        // open the connection:
        sqlite_conn.Open();

        // create a new SQL command:
        sqlite_cmd = sqlite_conn.CreateCommand();

        // Let the SQLiteCommand object know our SQL-Query:
        sqlite_cmd.CommandText = "CREATE TABLE table1 (Seq# integer primary key, Field integer primary key, Description integer primary key);";

        // Now lets execute the SQL ;D                                                                                  
        sqlite_cmd.ExecuteNonQuery(); <<< ---- This is where Error Occurs !

        // Lets insert something into our new table:
        sqlite_cmd.CommandText = "INSERT INTO table1 (Seq#, Field, Description) VALUES (list[0], list[1], list[2]);";

        // And execute this again ;D
        sqlite_cmd.ExecuteNonQuery();


        // We are ready, now lets cleanup and close our connection:
        sqlite_conn.Close();
    }
4

1 に答える 1

5

#SQL では、プレーンな識別子では使用できません。

使用できるのは、引用された識別子です。SQL では、これは二重引用符 ( "Seq#") で行われます。MySQL は一重引用符 ( 'Seq#') またはバックティック ( `Seq#`) を使用します。SQL Server は括弧 ( [Seq#]) を使用します。これらはすべて、互換性のために SQLite でサポートされています

名前が使用されるたびに名前を引用したくない場合は、#.

于 2013-10-29T16:00:06.637 に答える