Combobox.SelectedItem не работает в параметре - PullRequest
0 голосов
/ 26 октября 2018

Я извлекаю данные из таблицы на Combobox_SelectionChanged. Всякий раз, когда я пытаюсь добавить параметр, он больше не получает данные. Что интересно, если я заменю значение 'Combobox.SelectedItem' на имя "Max", данные извлекаются. Также, если я укажу 'Combobox.SelectedIndex == 1,2 or 3', он все равно получит данные. Что не так с Combobox.SelectedItem в качестве значения?

private void Combobox_SelectionChanged(object sender, SelectionChangedEventArgs e)
    {
        if (Combobox.SelectedIndex > -1)
        {
            string Provider = "Provider=Microsoft.ACE.OLEDB.12.0;Data Source =";
            string dataFile = System.AppDomain.CurrentDomain.BaseDirectory;
            dataFile = "Database\\Data.accdb";

            string Selecte = "Select * FROM [Table] WHERE @1 IN([Name]) ORDER BY [Number] ASC";
            using (OleDbConnection myConnection = new OleDbConnection(Provider + dataFile))
            {

                if (myConnection.State != ConnectionState.Open)
                    myConnection.Open();

                OleDbCommand cmd = new OleDbCommand(Selecte, myConnection);

                    cmd.Parameters.Add(new OleDbParameter { ParameterName = "@1", OleDbType = OleDbType.Char, Value = Combobox.SelectedItem });
                    cmd.ExecuteNonQuery();

                OleDbDataAdapter da = new OleDbDataAdapter(cmd);
                DataTable dt = new DataTable();
                da.Fill(dt);
                dataGrid.ItemsSource = dt.AsDataView();
            }
        }

1 Ответ

0 голосов
/ 26 октября 2018
cmd.Parameters.Add(new OleDbParameter { ParameterName = "@1", OleDbType = OleDbType.Char, Value = Combobox.SelectedItem });

Изменено на:

cmd.Parameters.Add(new OleDbParameter { ParameterName = "@1", OleDbType = OleDbType.**VarChar**, Value = Combobox.SelectedItem });
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...