Форум программистов, компьютерный форум, киберфорум
C#: Базы данных
Войти
Регистрация
Восстановить пароль
Блоги Сообщество Поиск Заказать работу  
 
Рейтинг 4.89/9: Рейтинг темы: голосов - 9, средняя оценка - 4.89
7 / 4 / 0
Регистрация: 13.09.2013
Сообщений: 151

Ошибка в заполнении DataGrid

05.12.2014, 11:56. Показов 1885. Ответов 8
Метки нет (Все метки)

Студворк — интернет-сервис помощи студентам


код UserContext.cs
C#
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Data.Entity;
 
namespace WindowsFormsApplication2
{
    class UserContext : DbContext
    {
         public UserContext() 
        :base("DefaultConnection")
    { }
 
    public DbSet<Collector> Collector { get; set; }
    }
Код Collector.cs

C#
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
 
namespace WindowsFormsApplication2
{
    class Collector
    {
        public int id_collector { get; set; }
        public string name { get; set; }
        public string adress { get; set; }
    }
}

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
90
91
92
93
namespace WindowsFormsApplication2
{
    public partial class Form1 : Form
    {
        UserContext db;
        public Form1()
        {
            InitializeComponent();
            db = new UserContext();
            db.Collector.Load();
          
            dataGridView1.DataSource = db.Collector.Local.ToBindingList();
        }
        // добавление
        private void button1_Click(object sender, EventArgs e)
        {
            Form2 plForm = new Form2();
            DialogResult result = plForm.ShowDialog(this);
           
            if (result == DialogResult.Cancel)
                return;
 
            Collector collector = new Collector();
            
            collector.name = plForm.textBox1.Text;
            collector.adress = plForm.textBox2.Text;
 
            db.Collector.Add(collector);
            db.SaveChanges();
 
            MessageBox.Show("Новый объект добавлен");
        }
        //редактирование
        private void button2_Click(object sender, EventArgs e)
        {
            if (dataGridView1.SelectedRows.Count > 0)
            {
                int index = dataGridView1.SelectedRows[0].Index;
                int id = 0;
                bool converted = Int32.TryParse(dataGridView1[0, index].Value.ToString(), out id);
                if (converted == false)
                    return;
 
                Collector collector = db.Collector.Find(id);
 
                Form2 plForm = new Form2();
 
             
                plForm.textBox1.Text = collector.name;
                plForm.textBox2.Text = collector.adress;
 
               
                DialogResult result = plForm.ShowDialog(this);
 
                if (result == DialogResult.Cancel)
                    return;
 
            
                collector.name = plForm.textBox1.Text;
                collector.adress = plForm.textBox2.Text;
 
                db.Entry(collector).State = EntityState.Modified;
                db.SaveChanges();
 
                MessageBox.Show("Объект обновлен");
 
            }
        }
        //удаление
        private void button3_Click(object sender, EventArgs e)
        {
            if (dataGridView1.SelectedRows.Count > 0)
            {
                int index = dataGridView1.SelectedRows[0].Index;
                int id = 0;
                bool converted = Int32.TryParse(dataGridView1[0, index].Value.ToString(), out id);
                if (converted == false)
                    return;
 
                Collector collector = db.Collector.Find(id);
                db.Collector.Remove(collector);
                db.SaveChanges();
 
                MessageBox.Show("Объект удален");
            }
        }
 
      
       
 
       
    }
}
0
Лучшие ответы (1)
IT_Exp
Эксперт
34794 / 4073 / 2104
Регистрация: 17.06.2006
Сообщений: 32,602
Блог
05.12.2014, 11:56
Ответы с готовыми решениями:

Ошибка в заполнении БД
Когда добавляю новую строку в таблицу И пишу на месте Адрес Произвольный адрес (Пушкина 22) Он выдает ошибку типа...

Ошибка в заполнении массива
TProc = procedure; TData = array of integer; const pozithionInPosledovatelnostVobrazah : TData = ( ( ( ...

Ошибка при заполнении
Помогите определить где ошибка, так как какое число я не ввожу выводится в конце именно оно. Как мне кажется я ошибаюсь при заполнении...

8
 Аватар для m@cChe
45 / 45 / 26
Регистрация: 15.05.2013
Сообщений: 226
Записей в блоге: 1
05.12.2014, 15:07
aysium, а если так:
C#
1
2
3
4
5
6
7
8
9
10
11
12
13
        private readonly UserContext db = new UserContext();
 
        public Form1()
        {
            InitializeComponent();
            LoadUser();
        }
 
        private void LoadUser()
        {
            var data= db .Collector.Where(c => c.id > 0).ToList();
            dataGridView1.DataSource = data;
        }
Добавлено через 1 минуту
в гриде, никаких полей добавлять не нужно.
0
7 / 4 / 0
Регистрация: 13.09.2013
Сообщений: 151
05.12.2014, 23:24  [ТС]
Тоже ругается
0
 Аватар для m@cChe
45 / 45 / 26
Регистрация: 15.05.2013
Сообщений: 226
Записей в блоге: 1
05.12.2014, 23:45
aysium, ну конечно ругается...Вы ошибки читаете?


где создание экземпляра класса?
C#
1
UserContext db = new UserContext();

у Вас
C#
1
UserContext db
почему объект не создаете?

Добавлено через 1 минуту
В примере выше же описано создание объекта....

Добавлено через 1 минуту
<тип класса> имя переменной = new <тип класса>();

Добавлено через 2 минуты
ещё разок:
C#
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
  public partial class Form1 : Form
    {
        UserContext db = new UserContext();
 
        public Form1()
        {
            InitializeComponent();
            LoadUser();
        }
 
        private void LoadUser()
        {
            var data= db .Collector.Where(c => c.id > 0).ToList();
            dataGridView1.DataSource = data;
        }
 
//Ваш код...
 }
1
7 / 4 / 0
Регистрация: 13.09.2013
Сообщений: 151
05.12.2014, 23:59  [ТС]
m@cChe, простите, не заметила, спасибо за подробный ответ.
но он все равно ругается,выделяет эту строчку с tolist
0
7 / 4 / 0
Регистрация: 13.09.2013
Сообщений: 151
06.12.2014, 00:06  [ТС]
не знаю уже что делать, замучилась.. может здесь Вам что-нибудь подскажет, может есть подозрение на ошибку
0
 Аватар для m@cChe
45 / 45 / 26
Регистрация: 15.05.2013
Сообщений: 226
Записей в блоге: 1
06.12.2014, 00:08
да....в гриде, никаких полей добавлять не нужно.

Добавлено через 52 секунды
я же писал
положите на форму, пустой контрол
0
 Аватар для m@cChe
45 / 45 / 26
Регистрация: 15.05.2013
Сообщений: 226
Записей в блоге: 1
06.12.2014, 00:25
Лучший ответ Сообщение было отмечено aysium как решение

Решение

Смотрите уважаемая, все на пальцах:

помещаем на форму пустой контрол dataGridView:



используем контекст для получения значений из таблицы по id:




получаем:
1
7 / 4 / 0
Регистрация: 13.09.2013
Сообщений: 151
06.12.2014, 01:50  [ТС]
Решение найдено, все заработало, тема закрыта))
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
BasicMan
Эксперт
29316 / 5623 / 2384
Регистрация: 17.02.2009
Сообщений: 30,364
Блог
06.12.2014, 01:50
Помогаю со студенческими работами здесь

Ошибка в заполнении массива из
Я пишу программу для построения аппроксимирующей линии. точки задаются в блокноте. в этой части кода выходит ошибка( на скрине). Помогите с...

Ошибка при заполнении
Почему выбивает ошибку &quot;Индекс находился вне границ массива.&quot; ???? using System; using System.Collections.Generic; using...

Ошибка при заполнении полей
Доброго времени) Delphi7+Access Ошибка &quot;...не может содержать значение Null, так как свойство Required имеет значение True. Введите...

Ошибка при заполнении массива
Нужно заполнить массив в четных индексах 1-цей , а в нечетных значением i / 5; using System; using System.Collections.Generic; ...

Ошибка в заполнении двумерного масс
Задание: Заполнить двумерный массив 10х10 следующим образом: 91 92 93 .. .. 100 81 82 83 .. .. 90 71 72 73 .. .. 80 .. .. .. .....


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

Или воспользуйтесь поиском по форуму:
9
Ответ Создать тему
Новые блоги и статьи
Оттенки серого
Argus19 18.03.2026
Оттенки серого Нашёл в интернете 3 прекрасных модуля: Модуль класса открытия диалога открытия/ сохранения файла на Win32 API; Модуль класса быстрого перекодирования цветного изображения в оттенки. . .
SDL3 для Desktop (MinGW): Рисуем цветные прямоугольники с помощью рисовальщика SDL3 на Си и C++
8Observer8 17.03.2026
Содержание блога Финальные проекты на Си и на C++: finish-rectangles-sdl3-c. zip finish-rectangles-sdl3-cpp. zip
Символические и жёсткие ссылки в Linux.
algri14 15.03.2026
Существует два типа ссылок — символические и жёсткие. Ссылка в Linux — это запись в каталоге, которая может указывать либо на inode «файла-ИСТОЧНИКА», тогда это будет «жёсткая ссылка» (hard link),. . .
[Owen Logic] Поддержание уровня воды в резервуаре количеством включённых насосов: моделирование и выбор регулятора
ФедосеевПавел 14.03.2026
Поддержание уровня воды в резервуаре количеством включённых насосов: моделирование и выбор регулятора ВВЕДЕНИЕ Выполняя задание на управление насосной группой заполнения резервуара,. . .
делаю науч статью по влиянию грибов на сукцессию
anaschu 13.03.2026
прикрепляю статью
SDL3 для Desktop (MinGW): Создаём пустое окно с нуля для 2D-графики на SDL3, Си и C++
8Observer8 10.03.2026
Содержание блога Финальные проекты на Си и на C++: hello-sdl3-c. zip hello-sdl3-cpp. zip Результат:
Установка CMake и MinGW 13.1 для сборки С и C++ приложений из консоли и из Qt Creator в EXE
8Observer8 10.03.2026
Содержание блога MinGW - это коллекция инструментов для сборки приложений в EXE. CMake - это система сборки приложений. Здесь описаны базовые шаги для старта программирования с помощью CMake и. . .
Как дизайн сайта влияет на конверсию: 7 решений, которые реально повышают заявки
Neotwalker 08.03.2026
Многие до сих пор воспринимают дизайн сайта как “красивую оболочку”. На практике всё иначе: дизайн напрямую влияет на то, оставит человек заявку или уйдёт через несколько секунд. Даже если у вас. . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2026, CyberForum.ru