2016-07-16 12 views
0

sqliteデータベース結合からリストを作成しようとしています。私は特定のマシンが選択されているときに日付の値を取得したいと思います。例:マシンAが選択され、05/25/15、05/30/15、05/20/15のリストが作成されます。私が使用している結合では、カラム名は吐き出したいが値は吐き出さない。これはsqliteのあいまいな列エラーです。sqliteデータベース結合関数からリストを作成

enter image description here

void fill_listbox_Dates() 
    { 
     string Machine_Name_listbox = listboxMachines.SelectedItem.ToString(); 

     string databaseString = "datasource=LinacDatabase.db"; 

     string DateQuery = "SELECT Date FROM Machines as E1 INNER JOIN Date as E2 ON Machines.Machine= " + Machine_Name_listbox + ""; 

     SQLiteConnection conDatabase = new SQLiteConnection(databaseString); 
     SQLiteCommand cmdDataBase = new SQLiteCommand(DateQuery, conDatabase); 
     SQLiteDataReader ReadDate; 

     try 
     { 

      conDatabase.Open(); 
      ReadDate = cmdDataBase.ExecuteReader(); 

      while (ReadDate.Read()) 
      { 
       List<string> Dates = ReadDate.GetString(1); 

       listboxDates.Items.Add(Dates); 
      } 

     } 
+0

あなたが2番目のテーブルはどこですか? – Eris

+0

私はちょっと混乱しています。それは唯一のテーブルですが、私はマシンAの日付の列を作成したいと思います。それで、同じテーブルのためにそれが動作するかどうかを確認するために結合しました。 – LitteringAnd

+0

あなたのクエリは非常に奇妙に見えますが、私はあなたがおそらく "マシンから日付を選択したいと思います。マシン= '" + Machind_Name_listbox + "'"; – Sconibulus

答えて

0

だから、問題は、私はMachine_Name_Listボックスの文字列の二重引用符に周りの単一引用符の値を挿入しなければならなかったということでした。それ以外の場合、sqliteデータウェアハウスは値が列名だと考えます。したがって、それは読む必要があります

string DateQuery = "SELECT Date FROM Machines as E1 INNER JOIN Date as E2 ON Machines.Machine= '" + Machine_Name_listbox + "'"; 
関連する問題