Форум программистов, компьютерный форум, киберфорум
C# Windows Forms
Войти
Регистрация
Восстановить пароль
Блоги Сообщество Поиск Заказать работу  
 
Рейтинг 4.50/6: Рейтинг темы: голосов - 6, средняя оценка - 4.50
0 / 0 / 0
Регистрация: 24.09.2014
Сообщений: 21

После удаления всех записей из DataGridView выскакивает ошибка

14.01.2015, 11:07. Показов 1191. Ответов 14
Метки нет (Все метки)

Студворк — интернет-сервис помощи студентам
После удаления всех записей из DataGridView выскакивает ошибка

что делать
Миниатюры
После удаления всех записей из DataGridView выскакивает ошибка  
0
Programming
Эксперт
39485 / 9562 / 3019
Регистрация: 12.04.2006
Сообщений: 41,671
Блог
14.01.2015, 11:07
Ответы с готовыми решениями:

После удаления модуля, выскакивает ошибка
Ну вот не понравилось мне то, что я написал в редакторе VBA для Ексель. Взял, да и стер все в редакторе, просто стер. Файл екселевский...

Не открываются сайты после удаления Baidu и других вирусов, выскакивает ошибка MintCastNetworks
Через флешку в ОС попал вирус, Dr.Web обнаружил 18 вирусов и удалил, после перезагрузки не открывается не одна страница, если пинговать...

После удаления жёсткого диска при установки новой ОС выскакивает ошибка при включении ноутбука
Беда такая: Стояла 8-ка, захотел поставить 7-ку. Вроде всё хорошо, устанавливаю 7-ку и при разделении дисков начало писать что нельзя...

14
 Аватар для nio
6050 / 3460 / 336
Регистрация: 14.06.2009
Сообщений: 8,136
Записей в блоге: 2
14.01.2015, 11:56
Цитата Сообщение от Денис007е Посмотреть сообщение
что делать
смотреть пошагово. С какого перепугу при удалении данных из dgv прога ломится на сервер?
0
0 / 0 / 0
Регистрация: 24.09.2014
Сообщений: 21
14.01.2015, 12:14  [ТС]
чтобы обновить грид

Добавлено через 2 минуты
Вот текст формы
C#
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
using System;
using System.Collections.Generic;
using System.ComponentModel;
using System.Data;
using System.Drawing;
using System.Linq;
using System.Text;
using System.Windows.Forms;
using System.Data.SqlClient;
using AUTO;
 
namespace AUTO
{
    public partial class FormBank : Form
    {
        SqlConnection _conn = new SqlConnection(Properties.Settings.Default.ConnectionString);
 
        public static EventHandler RefreshGrid;
 
        public void FormBank_RefreshGrid(object sender, EventArgs e)
        {
            FillGrid();
        }
 
 
        private void FillGrid()
        {
            BindingSource bs = new BindingSource();
            bs.DataSource = Bank.GetAllBank(_conn);
            
            dGVBank.DataSource = bs;
        }
        
        public FormBank()
        {
            FormBank.RefreshGrid += new EventHandler(FormBank_RefreshGrid);
            InitializeComponent();
        }
 
        private void butClose_Click(object sender, EventArgs e)
        {
            FormBank.ActiveForm.Close();
        }
 
        private void FormBank_Load(object sender, EventArgs e)
        {
            FillGrid();
        }
 
        private void ShowBankADDForm(int id)
        {
            FormBankADD fba = new FormBankADD();
            fba.ShowMe(id, _conn, FormBankADD.FormMode.Edit);
        }
 
        private void butADD_Click(object sender, EventArgs e)
        {
            
            FormBankADD fba = new FormBankADD();
            fba.ShowMe(_conn, FormBankADD.FormMode.Add);
        
        }
 
        private void butEdit_Click(object sender, EventArgs e)
        {
            int id = (int)dGVBank.Rows[dGVBank.CurrentRow.Index].Cells["BankID"].Value;
            FormBank fb = new FormBank();
            fb.ShowBankADDForm(id);
        }
 
        private void butDel_Click(object sender, EventArgs e)
        {
            int id = (int)dGVBank.Rows[dGVBank.CurrentRow.Index].Cells["BankID"].Value;
            if (MessageBox.Show("Вы действительно хотите удалить запись?", "Внимание!", MessageBoxButtons.YesNo, MessageBoxIcon.Warning) == DialogResult.Yes)
            {
                Bank.DeleteBank(id, _conn);
            }
            FillGrid();
        }
 
        private void FormBank_FormClosed(object sender, FormClosedEventArgs e)
        {
            FormMain fmm = new FormMain();
            fmm.Show();
        }
 
        
    }
}
0
 Аватар для nio
6050 / 3460 / 336
Регистрация: 14.06.2009
Сообщений: 8,136
Записей в блоге: 2
14.01.2015, 14:33
Денис007е,
итак некоторые крупные проблемы, которые я увидел в коде:
- BindingSource создаётся при каждом обращении к БД, а правильнее было бы сделать один экземпляр на всё время жизни формы
- зачем событие RefreshGrid сделано статическим, я не понял, но скорее всего это не нужно.
- событие после закрытия зачем-то создаёт новый экземпляр родительской формы. Подозреваю, что текущая форма вызывается именно с родительской, таким образом после нескольких открытий этой формы в наличии будет пачка не закрытых родительских форм
- всё выше написанное конечно важно, но не решает проблему. Причин вызывающих эту проблему, в данном коде нет, они лежат за пределами этой формы. Подозреваю, что смотреть нужно в Bank.GetAllBank(_conn), . Исходя из текста ошибки предполагаю, что заполнение происходит через ридер (что собственно тоже немного ересью отдаёт, правильнее было бы использовать адаптер), который при отсутствии строк просто закрывается, но вот попытка вытянуть с него строку всё равно происходит. Но это только предположение, пошаговое выполнение, прояснит...
1
0 / 0 / 0
Регистрация: 24.09.2014
Сообщений: 21
15.01.2015, 15:11  [ТС]
я пока всего лишь учусь поэтому простительны некоторые ошибки

вот код getAllBank
C#
1
2
3
4
5
6
7
8
9
internal static SqlDataReader GetAllBank(SqlConnection conn)
        {
 
            string query = "SELECT  BankID, BankName, BankStat, Schet, KorrSchet, BIK, KPP, INN FROM Bank  order by BankName;";
            SqlCommand com = new SqlCommand(query, Helper.CheckConnection(conn));
            SqlDataReader reader;
            reader = com.ExecuteReader(System.Data.CommandBehavior.CloseConnection);
            return reader;
        }
0
 Аватар для nio
6050 / 3460 / 336
Регистрация: 14.06.2009
Сообщений: 8,136
Записей в блоге: 2
15.01.2015, 15:49
Денис007е, что мне подсказывает, что при такой реализации прога вообще компилироваться не должна. Глюк должен быть здесь
C#
1
bs.DataSource = Bank.GetAllBank(_conn);
не может быть SqlDataReader (с таким применением) источником данных. Как использовать SqlDataReader правильно тут
Я бы рекомендовал сейчас почитать книгу по Ado.Net, самое время. Наугад в этой теме далеко не уйдёшь
0
0 / 0 / 0
Регистрация: 24.09.2014
Сообщений: 21
16.01.2015, 09:11  [ТС]
согласен учиться хочу может что посоветуете почитать.

А на самом деле програ работает данные получает записывает удаляет обновляет
0
 Аватар для nio
6050 / 3460 / 336
Регистрация: 14.06.2009
Сообщений: 8,136
Записей в блоге: 2
16.01.2015, 09:42
Денис007е, я всем советую "Ado.Net" автора Сеппа Д. Сам по ней учился. Книжка уже старая (2003), но очень хорошо описывает работу с данными при помощи Ado.Net. Естественно по Linq и EF там ничего нет.
0
 Аватар для aekuznecov
33 / 33 / 17
Регистрация: 25.03.2013
Сообщений: 520
Записей в блоге: 5
16.01.2015, 09:58
nio, а есть примеры книг по LINQ и EF(кроме Троелсона)?
0
 Аватар для nio
6050 / 3460 / 336
Регистрация: 14.06.2009
Сообщений: 8,136
Записей в блоге: 2
16.01.2015, 10:18
aekuznecov, Linq начинал учить именно по Троелсену, листал пару других, но мне они не понравились
1
0 / 0 / 0
Регистрация: 24.09.2014
Сообщений: 21
16.01.2015, 10:39  [ТС]
Я заменил NetFramework с 4,0 на 3,5 и все ошибка пропала

В чем может быть дело
0
 Аватар для nio
6050 / 3460 / 336
Регистрация: 14.06.2009
Сообщений: 8,136
Записей в блоге: 2
16.01.2015, 11:00
Цитата Сообщение от Денис007е Посмотреть сообщение
Я заменил NetFramework с 4,0 на 3,5 и все ошибка пропала
не думаю, что это могло решить проблему неправильного использования ридера
0
0 / 0 / 0
Регистрация: 24.09.2014
Сообщений: 21
16.01.2015, 15:55  [ТС]
скорее всего да, на данном этапе меня это удовлетворяет

Естественно для дальнейшего развития естественно разберусь и изменю

Дело в том что программа управления базой данных мне нужна для диплома поэтому пришлось начать изучение
если есть возможность помочь советом буду рад нет значить буду разбираться сам
0
 Аватар для nio
6050 / 3460 / 336
Регистрация: 14.06.2009
Сообщений: 8,136
Записей в блоге: 2
17.01.2015, 18:51
Денис007е, ещё раз советую не использовать ридер для заполнения DataGridView, для этого лучше подходит адаптер
0
0 / 0 / 0
Регистрация: 24.09.2014
Сообщений: 21
18.01.2015, 10:37  [ТС]
Надо научиться его использовать еще перед использованием
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
inter-admin
Эксперт
29715 / 6470 / 2152
Регистрация: 06.03.2009
Сообщений: 28,500
Блог
18.01.2015, 10:37
Помогаю со студенческими работами здесь

Удаление всех записей из DataGridView и добавление записей
Всем доброго времени суток. Столкнулся со следующей проблемой: написал код на удаление строк DataGridView. Строки удаляет но не все, а...

Нужна функция удаления всех записей из таблицы БД
Работаю на Visual Studio 15, программка Windows Forms на C# связана с базой данных MySql. Нашел как сделать удаление одной записи за...

инкрементирование после удаления записей
в базе записи были инкрементированы по ид и после удаления конечно они уже были не по порядку, как их можно снова упорядочить по порядку?

При попытке удаления строки по ключевому полю выскакивает ошибка 3061: слишком мало параметров
Есть таблица, источником данных которой является SQL запрос-выборка из нескольких таблиц. При попытке удаления строки по ключевому полю...

Команда через adoconnection или adotable для удаления всех записей из БД
какой командой через adoconection или adotable можно удалить все записи в БД при нажатии на кнопку button


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
15
Ответ Создать тему
Новые блоги и статьи
YAFU@home — распределённые вычисления для математики. На CPU
Programma_Boinc 20.01.2026
YAFU@home — распределённые вычисления для математики. На CPU YAFU@home — это BOINC-проект, который занимается факторизацией больших чисел и исследованием aliquot-последовательностей. Звучит. . .
http://iceja.net/ математические сервисы
iceja 20.01.2026
Обновила свой сайт http:/ / iceja. net/ , приделала Fast Fourier Transform экстраполяцию сигналов. Однако предсказывает далеко не каждый сигнал (см ограничения http:/ / iceja. net/ fourier/ docs ). Также. . .
http://iceja.net/ сервер решения полиномов
iceja 18.01.2026
Выкатила http:/ / iceja. net/ сервер решения полиномов (находит действительные корни полиномов методом Штурма). На сайте документация по API, но скажу прямо VPS слабенький и 200 000 полиномов. . .
Расчёт переходных процессов в цепи постоянного тока
igorrr37 16.01.2026
/ * Дана цепь постоянного тока с R, L, C, k(ключ), U, E, J. Программа составляет систему уравнений по 1 и 2 законам Кирхгофа, решает её и находит: токи, напряжения и их 1 и 2 производные при t = 0;. . .
Восстановить юзерскрипты Greasemonkey из бэкапа браузера
damix 15.01.2026
Если восстановить из бэкапа профиль Firefox после переустановки винды, то список юзерскриптов в Greasemonkey будет пустым. Но восстановить их можно так. Для этого понадобится консольная утилита. . .
Сукцессия микоризы: основная теория в виде двух уравнений.
anaschu 11.01.2026
https:/ / rutube. ru/ video/ 7a537f578d808e67a3c6fd818a44a5c4/
WordPad для Windows 11
Jel 10.01.2026
WordPad для Windows 11 — это приложение, которое восстанавливает классический текстовый редактор WordPad в операционной системе Windows 11. После того как Microsoft исключила WordPad из. . .
Classic Notepad for Windows 11
Jel 10.01.2026
Old Classic Notepad for Windows 11 Приложение для Windows 11, позволяющее пользователям вернуть классическую версию текстового редактора «Блокнот» из Windows 10. Программа предоставляет более. . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2026, CyberForum.ru