C # получить идентификатор базы данных выбранного элемента из автозаполнения текстового поля - PullRequest
0 голосов
/ 18 декабря 2018

enter image description here

Я использовал этот код, чтобы получить имя из базы данных и добавить его в коллекцию текстовых полей:

    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();
    }

Автозаполнение работает, но яхотите получить идентификатор выбранного элемента и использовать его для заполнения таблицы данных ниже

1 Ответ

0 голосов
/ 20 декабря 2018

Это очень голые кости, не практикуется хорошая инкапсуляция, нет оператора "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;
...