2017-11-03 19 views
-1

Combobox.SelectedValueを使用してWHERE句を作成する方法は?SQLiteコマンド構文WHERE句

conL.Open(); 
cmdL.Connection = conL; 
cmdL.CommandText ="SELECT Id FROM dbAllServers WHERE Server_Names='" + cmb_SQLNames.SelectedValue +"'"; 
SQLiteDataReader r = cmdL.ExecuteReader(); 
while(r.Read()) 
{ 
    serID = int.Parse(r[0].ToString()); 
    MessageBox.Show("Current Selected Server ID is:..." + serID.ToString()); 
} 
conL.Close(); 
+4

一部、このコードの問題は何ですか? – Steve

+1

'cmb_SQLNames.SelectedValue'を印刷すると、予想されるフィルタ値が得られますか? – Dragonvil

+5

クエリ文字列のコンボボックス値を連結する代わりに、パラメータ化クエリを使用します。あなたはその質問にどのような問題がありますか? –

答えて

3

パラメータ化クエリの例、役に立つかもしれません:危険な文字列の連結から

string query = "SELECT Id FROM dbAllServers WHERE [email protected]_name"; 

string serverName = cmb_SQLNames.SelectedValue; 

using (SQLiteConnection connection = new SQLiteConnection(GetConnectionString())) 
{ 
    connection.Open(); 
    using (var cmd = new SQLiteCommand(query, connection)) 
    { 
     cmd.Parameters.Add(new SQLiteParameter("@server_name", serverName)); 
     using (var rdr = cmd.ExecuteReader()) 
     { 
      while (rdr.Read()) 
      { 
       // do your job here 
      } 
     } 
    } 
}