Форум программистов, компьютерный форум, киберфорум
C# для начинающих
Войти
Регистрация
Восстановить пароль
Блоги Сообщество Поиск Заказать работу  
 
Stillleben
.NET 4.x

Ошибка An unhandled exception of type 'System.NullReferenceException' occurred in GridModel.exe

17.05.2013, 13:58. Показов 1042. Ответов 0
Метки нет (Все метки)

Студворк — интернет-сервис помощи студентам
Здравствуйте. Пытаюсь написать класс генерации таблицы для веб-страниц.
Хедер таблицы строится по строкам, потом по столбцам, в DxCell хранятся названия столбцов. И вот я не могу получить их значения, вылезает указанная ошибка на 23 строке при попытке выбрать это Value из словаря Cells:
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
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
public class DxTable
    {
        public bool AllowDelete { get; set; }
        public bool AllowEdit { get; set; }
        public bool AllowAdd { get; set; }
        public bool AllowCopy { get; set; }
        public List<DxColumn> Columns { get; set; }
        public List<DxLine> HeaderLines { get; set; }
        public string DataUrl { get; set; }
 
        public void GenerateHtmlCode(DxTable t)
        {   
            string HtmlCode = "", value = "";
            int Count_Column = t.Columns.Capacity;
            int Count_Lines = t.HeaderLines.Capacity;
            Console.WriteLine("Count_Column {0}", Count_Column);
            Console.WriteLine("Count_Lines {0}", Count_Lines);
            foreach(DxLine currentLine in t.HeaderLines)
            {
                    HtmlCode += @"mygrid_value.setHeader(""";
                    foreach (DxColumn currentColumn in t.Columns)
                    {
                        HtmlCode += currentLine.Cells[currentColumn].Value;
                    }
            }
            Console.WriteLine(value);
        }
    }
 
    public class DxColumn
    {
        public bool IsPartOfKey { get; set; }
        public string ID { get; set; }
        public int Width { get; set; }
        public DxTable Parent { get; private set; }
 
        public DxColumn(DxTable newParent)
        {
            Parent = newParent;
        }
    }
 
    public class DxLine
    {
        public Dictionary<DxColumn, DxCell> Cells { get; set; }
        public DxTable Parent { get; private set; }
 
        public DxLine(DxTable newParent)
        {
            Parent = newParent;
        }
 
        public void AddCell(DxColumn columnToAttach, DxCell contentCell)
        {
            Dictionary<DxColumn, DxCell> newCells = new Dictionary<DxColumn,DxCell>();
            newCells.Add(columnToAttach, contentCell);
            Console.WriteLine("newCell:" + newCells[columnToAttach].Value + "\n");
        }
    }
 
    public class DxCell
    {
        public string Value { get; set; }
        public DxLine Parent { get; private set; }
        public int columnSpan { get; set; }
 
        public DxCell(string newValue, DxLine newParent, int cSpan)
        {
            Value = newValue;
            Parent = newParent;
            columnSpan = cSpan;    
        }
        public DxCell()
        {
            Value = "";
            columnSpan = 0;
        }
    }
 
    public class Work
    {
        static void Main(string[] args)
        {
            int count_lines, count_columns, cspan;
            string value;
            Console.WriteLine("count_lines = ");
            count_lines = Convert.ToInt32(Console.ReadLine());
            Console.WriteLine("count_columns = ");
            count_columns = Convert.ToInt32(Console.ReadLine());
            DxTable table = new DxTable();//create Table
            DxLine[] line = new DxLine[count_lines];//create Line[]
            DxColumn[] column = new DxColumn[count_columns];//create Column[]
            table.Columns = new List<DxColumn>();
            table.HeaderLines = new List<DxLine>();
            table.Columns.Capacity = count_columns;
            table.HeaderLines.Capacity = count_lines;
            //Заполняем свойства столбцов
            for (int i = 0; i < count_columns; i++)
            {
                Console.WriteLine("Column[{0}]:", i);
                column[i] = new DxColumn(table);
                Console.WriteLine("IsPartOfKey = ");
                column[i].IsPartOfKey = Convert.ToBoolean(Console.ReadLine());
                Console.WriteLine("ID = ");
                column[i].ID = Console.ReadLine();
                Console.WriteLine("Width = ");
                column[i].Width = Convert.ToInt32(Console.ReadLine());
            }
            for (int i = 0; i < count_lines; i++)//
            {
                line[i] = new DxLine(table);
                for (int j = 0; j < count_columns; j++)
                {
                    Console.WriteLine("Value = ");
                    value = Console.ReadLine();
                    Console.WriteLine("columnSpan = ");
                    cspan = Convert.ToInt32(Console.ReadLine());
                    DxCell cell = new DxCell(value, line[i], cspan);//create Cell
                    line[i].AddCell(column[j], cell);
                    table.Columns.Add(column[j]);
                }
                table.HeaderLines.Add(line[i]);
            }
            table.GenerateHtmlCode(table);
        }
    }
Помогите, пожалуйста, найти где я что не указала, а то уже мозг кипит..
IT_Exp
Эксперт
34794 / 4073 / 2104
Регистрация: 17.06.2006
Сообщений: 32,602
Блог
17.05.2013, 13:58
Ответы с готовыми решениями:

An unhandled exception of type 'System.NullReferenceException' occurred
Почему такое вылазит при простейшем коде? Что я делаю не так? string PAs = null; for (int a = 1; a != 10; a++) PAs = &quot;XXX&quot;;

An unhandled exception of type 'System.NotImplementedException' occurred in WindowsFormsApplication1.exe
Добрый день. Мне нужно написать программу &quot;Быки и коровы&quot;. Код нашла в интернете и вроде все работает, но при введении числа вылазит ошибка...

Ошибка: An unhandled exception of type 'System.Data.OracleClient.OracleException' occurred in system.data.oracleclient.dll
а вы что хотите получить, уважаемый? кол-во выбранных записей, или какое-то конкретное значение?

0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
BasicMan
Эксперт
29316 / 5623 / 2384
Регистрация: 17.02.2009
Сообщений: 30,364
Блог
17.05.2013, 13:58
Помогаю со студенческими работами здесь

Ошибка во время дебага: An unhandled exception of type 'System.ComponentModel.Win32Exception'
Здравствуйте. Во время дебага приложения вылетает ошибка (An unhandled exception of type 'System.ComponentModel.Win32Exception'), когда...

Ошибка An unhandled exception of type 'System.NullReferenceException' occurred in WindowsFormsApplication1.exe
Есть квадратная матрица размера M, числа в которой можно ограничить в диапазон q от b. Затем же нужно её преобразовать чтобы все элементы...

Ошибка An unhandled exception of type 'System.NullReferenceException'
Здраствуйте.Я перехожу с VB на VB.NET и делаю только первые шаги. У меня возникла проблема при обращении с Form2 к объектам Form1. Т.е я...

Ошибка An unhandled exception of type 'System.Runtime.InteropServices.COMException' occurred in mscorlib.dll
В программке VB.Net я использую некий ОСХ. При попытке обратиться к какой-т из функций ОСХ-а или поменять значение какой-то Property...

Ошибка An unhandled exception of type 'System.Data.OleDb.OleDbException' occurred in system.data.dll
добовляю данные в таблицу .mdb (язык C#) string strSql='INSERT INTO tt (ID,F1,F2) VALUES(?,?,?)'; OleDbConnection cn = new...


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

Или воспользуйтесь поиском по форуму:
1
Ответ Создать тему
Новые блоги и статьи
Символьное дифференцирование
igorrr37 13.02.2026
/ * Программа принимает математическое выражение в виде строки и выдаёт его производную в виде строки и вычисляет значение производной при заданном х Логарифм записывается как: (x-2)log(x^2+2) -. . .
Камера Toupcam IUA500KMA
Eddy_Em 12.02.2026
Т. к. у всяких "хикроботов" слишком уж мелкий пиксель, для подсмотра в ESPriF они вообще плохо годятся: уже 14 величину можно рассмотреть еле-еле лишь на экспозициях под 3 секунды (а то и больше),. . .
И ясному Солнцу
zbw 12.02.2026
И ясному Солнцу, и светлой Луне. В мире покоя нет и люди не могут жить в тишине. А жить им немного лет.
«Знание-Сила»
zbw 12.02.2026
«Знание-Сила» «Время-Деньги» «Деньги -Пуля»
SDL3 для Web (WebAssembly): Подключение Box2D v3, физика и отрисовка коллайдеров
8Observer8 12.02.2026
Содержание блога Box2D - это библиотека для 2D физики для анимаций и игр. С её помощью можно определять были ли коллизии между конкретными объектами и вызывать обработчики событий столкновения. . . .
SDL3 для Web (WebAssembly): Загрузка PNG с прозрачным фоном с помощью SDL_LoadPNG (без SDL3_image)
8Observer8 11.02.2026
Содержание блога Библиотека SDL3 содержит встроенные инструменты для базовой работы с изображениями - без использования библиотеки SDL3_image. Пошагово создадим проект для загрузки изображения. . .
SDL3 для Web (WebAssembly): Загрузка PNG с прозрачным фоном с помощью SDL3_image
8Observer8 10.02.2026
Содержание блога Библиотека SDL3_image содержит инструменты для расширенной работы с изображениями. Пошагово создадим проект для загрузки изображения формата PNG с альфа-каналом (с прозрачным. . .
Установка Qt-версии Lazarus IDE в Debian Trixie Xfce
volvo 10.02.2026
В общем, достали меня глюки IDE Лазаруса, собранной с использованием набора виджетов Gtk2 (конкретно: если набирать текст в редакторе и вызвать подсказку через Ctrl+Space, то после закрытия окошка. . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2026, CyberForum.ru