何かのようなもの
command.CommandText = "SELECT * FROM Books WHERE Author='"+Convert.ToString(comboBox1.SelectedItem)+"'";
var reader = command.ExecuteReader();
var list = new List<string>();
while(reader.Read())
{
list.Add(reader["Author"].ToString())
}
datagridview.DataSource = list;
この方法でそれを行うことには多くの(多くの!)間違ったことがあります-しかしそれはあなたを適切にあなたの道に連れて行きます。
まず第一に、GUIをdbコードに「近づける」ことは避けてください。第二に、前述のように、このコードはSQLインジェクションに対して脆弱です。
私のおすすめ:
public List<string> GetAuthors(string aurtherName)
{
using(var con = CreateConnection()//somehow )
{
var command = con.CreateCommand();
string sql = "SELECT * FROM Books WHERE Author='@value'";
command.Parameters.AddWithValue("@value", aurtherName);
command.CommandText = sql ;
var list = new List<string>();
while(reader.Read())
{
list.Add(reader["Author"].ToString())
}
return list;
}
}
そうすれば、次のように呼び出すことができます。
datagridview.DataSource = GetAuthors(comboBox1.SelectedItem);