2017-08-09 9 views
-1
でbuttonSearch_Clickを作る方法を
SQLiteConnection connection = new SQLiteConnection(@"data source=C:\Users\Documents\Visual Studio 2015\Projects\SaveToXML\SaveToXML\SaveToXML\EPG_Daten.db"); 
    SQLiteCommand command; 
    SQLiteDataReader sqdr; 
    private void buttonSearch_Click(object sender, EventArgs e) 
    { 
     connection.Open(); 
     string selectQuery = "SELECT * FROM EPG_Daten.EPGdaten WHERE File=" + (textBox1.Text); 
     command = new SQLiteCommand(selectQuery, connection); 
     sqdr = command.ExecuteReader(); 
     if (sqdr.Read()) 
     { 
      textBox4.Text = sqdr.GetValue(0).ToString(); 
      textBox5.Text = sqdr.GetValue(1).ToString(); 
     } 
     else 
     { 
      textBox1.Text = ""; 
      textBox4.Text = ""; 
      textBox5.Text = ""; 
      MessageBox.Show("No Data For This File"); 
     } 
     connection.Close(); 
    } 

みなさん、こんにちは、私は今、私はいつもSQLiteDataReaderのsqdr上のエラーを取得し、textbox4とテキストボックス5に表示するために、データベースからのデータを使用することができ、ボタンの検索をやっています。どうすれば修正できますか?皆、ありがとうございました。SQLiteの

enter image description here

+0

エラーは何ですか?また、メソッド内でSQLオブジェクトを宣言する必要があります。接続オブジェクト、データリーダーオブジェクトなどを他のスコープと共有することは有名なことではありません。 – David

+0

付属の画像を参照してください – 100janovici

+0

これで、SQLコードに構文エラーがあります。実行時に実行している実際のSQLコードは何ですか? SQLインジェクションの脆弱性があり、ユーザーが送信したものを実行しようとしていることに注意してください。特に失敗した場合、SQL文字列は何ですか? – David

答えて

0

あなたがライン

string selectQuery = "SELECT * FROM EPG_Daten.EPGdaten WHERE File='" + textBox1.Text + "'"; 

に、あなたのファイルを囲む引用符を逃している。しかし、それが原因の潜在的SQL injectionの間違った方法で、あなた本当にはこのように、パラメータを使用する必要があります。

string selectQuery = "SELECT * FROM EPG_Daten.EPGdaten WHERE [email protected]"; 
command = new SQLiteCommand(selectQuery, connection); 
command.Parameters.Add(new SQLiteParameter("@fileName", textBox1.Text))); 
+0

私はまだ同じ問題を抱えています。添付の​​画像を参照してください。投稿を修正しました。 – 100janovici

+0

問題を解決しました。ありがとう – 100janovici