num = textBox5.Text;
using (OleDbConnection oledb = new OleDbConnection(@"Provider=Microsoft.ACE.OLEDB.12.0;Data Source=C:\Users\WhiteChemist-PC\source\repos\ГСМ\ГСМ\GSM.accdb"))
{
oledb.Open();
OleDbCommand command = new OleDbCommand(string.Format($"SELECT (Normaras) FROM [Table] WHERE [Numb] = '{0}'", num), oledb);
using (OleDbDataReader dataReader = command.ExecuteReader())
{
norma = command.ExecuteScalar().ToString();
if (radioButton1.Checked == true && comboBox2.SelectedIndex == 0)
{
try
{
k = int.Parse(norma);
}
catch (Exception ex)
{
MessageBox.Show(ex.ToString());
}
nadb = (k* (5 / 100));
command = new OleDbCommand(string.Format($"INSERT INTO [Table].[(Nad)] VALUES ('{0}')", nadb.ToString()), oledb);
while (dataReader.Read() == true)
command.ExecuteNonQuery();
}
В строке norma=command.ExecuteScalar().ToString()
выбивает исключение:
System.InvalidOperationException: "Существует назначенный этой команде Command открытый DataReader, который требуется предварительно закрыть."
До этого никогда при работе с бд не возникало таких ошибок.Кто знает в чем дело?
У вас в коде вызывается ExecuteReader, результат которого потом не используется (т.к. реальное значение вы строчкой ниже пытаетесь получить через ExecuteScalar, вызванный у той же команды).
Если подразумевается обработка только одной строки - удалите ExecuteReader и завязанный на него цикл.
Если подразумевается обработка нескольких строк - вычитывайте значение norma из reader, внутри цикла - а не вызовом ExecuteScalar.
Кофе для программистов: как напиток влияет на продуктивность кодеров?
Рекламные вывески: как привлечь внимание и увеличить продажи
Стратегії та тренди в SMM - Технології, що формують майбутнє сьогодні
Выделенный сервер, что это, для чего нужен и какие характеристики важны?
Современные решения для бизнеса: как облачные и виртуальные технологии меняют рынок
Есть база данных, со связанными таблицамиEntity Framework Code First
Есть переменная CmoTime, в которой происходит постоянно генерация 0, хотя вроде не должно CmoTime = TimeGenerator(true, OrderInterval, Precision);(К примеру с такими числами...
Необходимо сделать так, чтобы проводя пальцем вправо/влево переключалась сцена