Форум программистов
 

Восстановите пароль или Зарегистрируйтесь на форуме, о проблемах и с заказом рекламы пишите сюда - alarforum@yandex.ru, проверяйте папку спам!

Вернуться   Форум программистов > .NET Frameworks (точка нет фреймворки) > Базы данных (ADO.NET, LinqToSql, ORM Entity Framework, NHibernate)
Регистрация

Восстановить пароль
Повторная активизация e-mail

Купить рекламу на форуме - 42 тыс руб за месяц

Ответ
 
Опции темы Поиск в этой теме
Старый 25.09.2017, 08:28   #1
Grinvel
Пользователь
 
Регистрация: 25.09.2017
Сообщений: 16
По умолчанию Несоответствие типов данных в выражении условия отбора

БД Access
Нужно рассчитать некий коэффициент для различных типов деталей. Делаю выборку по маркам. После второго запроса при заполнении данных (dataAdapter.Fill(ds)) возникает ошибка "Несоответствие типов данных в выражении условия отбора".
Код:
        private void CompKIZHM_Click(object sender, EventArgs e)
        {
            CommandText = "SELECT * from Table1 Where ([Марка материала] = @Mark20L or [Марка материала] = @Mark25L or [Марка материала] = @MarkPlav) and [Количество] is not NULL and [Количество] <> @test";
            OleDbConnection conn = new OleDbConnection(ConnectionString);
            conn.Open();
            OleDbCommand MyCommand = new OleDbCommand();
            MyCommand.Connection = conn;
            MyCommand.CommandText = CommandText;
            MyCommand.Parameters.AddWithValue("@Mark20L", "20Л");
            MyCommand.Parameters.AddWithValue("@Mark25L", "25Л");
            MyCommand.Parameters.AddWithValue("@MarkPlav", "переплав");
            MyCommand.Parameters.AddWithValue("@test", "0");
            OleDbDataAdapter dataAdapter = new OleDbDataAdapter();
            dataAdapter.SelectCommand = MyCommand;
            DataSet ds = new DataSet();
            dataAdapter.Fill(ds);
            GridMainBD.DataSource = ds.Tables[0].DefaultView; 
            string str = GridMainBD.Rows[0].Cells[6].Value.ToString();
            if (String.IsNullOrEmpty(str))
                MessageBox.Show("Заполните поле \"Количество\" у необходимых деталей", "Предупреждение");
            else
                KIZHM20L.Text = Convert.ToString(ComputationKIZHM());

            CommandText = "SELECT * from Table1 Where [Марка материала] = @Mark35L and [Количество] is not NULL and [Количество] <> @test";
            MyCommand.CommandText = CommandText;
            MyCommand.Parameters.AddWithValue("@Mark35L", "35Л");
            MyCommand.Parameters.AddWithValue("@test", "0");
            dataAdapter.SelectCommand = MyCommand;
            dataAdapter.Fill(ds);
            if (String.IsNullOrEmpty(str))
                MessageBox.Show("Заполните поле \"Количество\" у необходимых деталей", "Предупреждение");
            else
                KIZHM35L.Text = Convert.ToString(ComputationKIZHM());

            CommandText = "SELECT * from Table1 Where [Марка материала] = @Mark35GL and [Количество] is not NULL and [Количество] <> @test";
            MyCommand.CommandText = CommandText;
            MyCommand.Parameters.AddWithValue("@Mark35GL", "35ГЛ");
            MyCommand.Parameters.AddWithValue("@test", "0");
            dataAdapter.SelectCommand = MyCommand;
            dataAdapter.Fill(ds);
            if (String.IsNullOrEmpty(str))
                MessageBox.Show("Заполните поле \"Количество\" у необходимых деталей", "Предупреждение");
            else
                KIZHM35GL.Text = Convert.ToString(ComputationKIZHM());
 
            CommandText = "SELECT * from Table1";
            MyCommand.CommandText = CommandText;
            dataAdapter.SelectCommand = MyCommand;
            dataAdapter.Fill(ds);
            GridMainBD.DataSource = ds.Tables[0].DefaultView;
            conn.Close();
        }
______________________
Используйте тег [CODE] (кнопка с решеткой # в форме сообщения) при вставке кода на форум.

Последний раз редактировалось Alex11223; 25.09.2017 в 08:39.
Grinvel вне форума Ответить с цитированием
Старый 24.10.2017, 10:17   #2
Grinvel
Пользователь
 
Регистрация: 25.09.2017
Сообщений: 16
По умолчанию

Решил проблему путём выделения подключения к БД и обработки запросов в отдельную процедуру
Grinvel вне форума Ответить с цитированием
Ответ


Купить рекламу на форуме - 42 тыс руб за месяц

Опции темы Поиск в этой теме
Поиск в этой теме:

Расширенный поиск


Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
[C#] ошибка: "Несоответствие типов данных в выражении условия отбора". Код внутри Atljh96 C# (си шарп) 1 25.06.2017 10:15
Несоответствие типов данных при условии отбора. Voindozor2 БД в Delphi 6 14.05.2014 12:44
несоответствие типов данных Pushkin1983 Microsoft Office Access 6 08.01.2014 12:49
Несоответствие типов данных в выражении условия отбора hauk70 БД в Delphi 12 15.05.2013 11:22
Ошибка "несоответствие типов данных в выражении условия отбора" shadow-2005 БД в Delphi 6 26.09.2012 21:23