Я использовал этот код, чтобы получить имя из базы данных и добавить его в коллекцию текстовых полей:
String ConString = "Data Source = (LocalDB)\\MSSQLLocalDB; AttachDbFilename = |DataDirectory|\\Database.mdf; Integrated Security = True";
using (SqlConnection con = new SqlConnection(ConString))
{
SqlCommand cmd = new SqlCommand("SELECT Lname,Fname,DDN FROM Staff", con);
con.Open();
SqlDataReader reader = cmd.ExecuteReader();
AutoCompleteStringCollection MyCollection = new AutoCompleteStringCollection();
while (reader.Read())
{
MyCollection.Add(reader.GetString(0));
}
TNom.AutoCompleteCustomSource = MyCollection;
con.Close();
}
Автозаполнение работает, но я хочу получить идентификатор выбранного элемента и использовать его для заполнения представления таблицы данных ниже
Это голые кости очень, не практикует хорошей инкапсуляции, нет оператора using, требуется перехват ошибок ... при этом он должен быть шаблоном того, как вы можете взять значение из текстового поля, получить обратно набор данных для этого и примените его к сетке:
SqlCommand cmd = new SqlCommand("select * from foo where bar = @BAR", conn);
cmd.Parameters.Add(new SqlParameter("@BAR", SqlDbType.VarChar));
cmd.Parameters[0].Value = TNom.Text;
SqlDataAdapter da = new SqlDataAdapter(cmd);
DataTable dt = new DataTable();
da.Fill(dt);
dataGridView1.DataSource = dt;