2017-08-20 18 views
0

私はここに私のC#プロジェクトでは、単純なSQLiteのDBのテーブル Database ScreenshotSQLiteDataReaderエラー、近くに "表":構文エラー

を持っているが、私はDBからデータを取得するために使用するコードです:

たぶん
SQLiteConnection dbConnection; 
dbConnection = new SQLiteConnection("Data Source=./new.db;"); 
dbConnection.Open(); 
if (dbConnection.State == System.Data.ConnectionState.Open) 
    richTextBox3.Text = "Conn"; 
string sqlcommand = "SELECT age FROM table WHERE index=1"; 
SQLiteCommand command = new SQLiteCommand(sqlcommand, dbConnection); 
SQLiteDataReader result = command.ExecuteReader(); 
if(result.HasRows) 
{ 
     while (result.Read()) 
     { 
      richTextBox1.Text = result.GetInt32(0) + " "+ result.GetString(1) + " " + result.GetInt32(2); 
     } 
} 

whileループは間違っていますが、私の問題はテーブルの近くの構文エラーです。

+2

テーブルで動作します。.. – RohitS

+0

ループまた動作しません。ループでは、インデックス0,1,2で3つのフィールドを要求していますが、選択にはフィールドが1つしかありません。これはインデックス0で利用できます。インデックス1と2を要求すると、IndexOutOfRange例外が発生します – Steve

答えて

0

上のすべての予約語を確認することができますSQLiteの中のキーワードですが、あなたはまだそれを使用したい場合は、あなたが以下のようにクエリ変更することができます。 [table]

して、テーブル名を囲むことにより、
string sqlcommand = "SELECT age FROM [table] WHERE index=1"; 

それはまた、あなたが(テーブル・ワード以外の)自分のテーブル名テーブル・ワードのインプレースを使用する必要がキーワードであるSQLSERVER

0

テーブルが予約語なので、テーブル間に「」を追加してみてください。あなた@Rohitはtableを述べたようにreserved words

string sqlcommand = "SELECT `age` FROM `table` WHERE `index`='1'"; 
関連する問題