Форум программистов
 
Контакты: о проблемах с регистрацией, почтой и по другим вопросам пишите сюда - alarforum@yandex.ru, проверяйте папку спам! Обязательно пройдите активизацию e-mail.

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

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

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

БД 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 в 09:39.
Grinvel вне форума   Ответить с цитированием
Старый 24.10.2017, 11:17   #2
Grinvel
Пользователь
 
Регистрация: 25.09.2017
Сообщений: 16
Репутация: 10
По умолчанию

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

Опции темы

Ваши права в разделе
Вы не можете создавать новые темы
Вы не можете отвечать в темах
Вы не можете прикреплять вложения
Вы не можете редактировать свои сообщения

BB коды Вкл.
Смайлы Вкл.
[IMG] код Вкл.
HTML код Выкл.

Быстрый переход

Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
[C#] ошибка: "Несоответствие типов данных в выражении условия отбора". Код внутри Atljh96 C# (си шарп) 1 25.06.2017 11: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


16:13.


Powered by vBulletin® Version 3.8.8 Beta 2
Copyright ©2000 - 2018, Jelsoft Enterprises Ltd.

RusProfile.ru


Справочник российских юридических лиц и организаций.
Проекты отопления, пеллетные котлы, бойлеры, радиаторы
интернет магазин respective.ru