Форум программистов, компьютерный форум CyberForum.ru

C# и базы данных, ADO.NET

Войти
Регистрация
Восстановить пароль
 
Weroum
0 / 0 / 0
Регистрация: 29.10.2016
Сообщений: 15
#1

Поиск в DataGridView - C#

11.01.2017, 02:44. Просмотров 152. Ответов 4
Метки нет (Все метки)

Здравствуйте, имеется база данных, в datagridview загружаются данные при старте и в textbox должен осуществляться поиск или даже правильней фильтр для записей в datagridview, при поиске вылазит ошибка:
Необработанное исключение типа "System.NullReferenceException" в MetroUI.exe
Дополнительные сведения: Ссылка на объект не указывает на экземпляр объекта. Вот архив проекта, помогите пожалуйста начинающему.MetroUI — копия.7z
Лучшие ответы (1)
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
11.01.2017, 02:44     Поиск в DataGridView
Посмотрите здесь:

C# Поиск в datagridview(заполненной из бд access)
Поиск строки в DataGridView C#
C# Поиск и вывод с combobox в datagridview
Поиск по DataGridView C# MySQL
Поиск по DataGridView в диапазоне дат C#
C# Поиск по трем столбцам DataGridView
Поиск по БД, вывод в результата в dataGridView C#
C# Поиск по dataGridView
C# Поиск в DataGridView
Поиск по базе DataGridView C#
Поиск и фильтрация строки в DataGridView C#
Поиск по данным в dataset/datagridview C# .NET 4.x

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

Или воспользуйтесь поиском по форуму:
После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
Usaga
1351 / 1105 / 192
Регистрация: 21.01.2016
Сообщений: 4,010
Завершенные тесты: 2
11.01.2017, 07:21     Поиск в DataGridView #2
Weroum, ошибка говорит о том, что где в коде есть неинициализированная ссылка. Запусти свою программу в студии в режиме отладки (Debug) и посмотри на строку, на которую она тебе укажет (а она укажет).
Weroum
0 / 0 / 0
Регистрация: 29.10.2016
Сообщений: 15
11.01.2017, 07:28  [ТС]     Поиск в DataGridView #3
Хм, вот код проекта, вроде все инициализировал, может где-то что-то пропустил? Ругается на 158 строку, где
C#
1
 if (dataGridView[c, i].Value.ToString() == metroTextBox1.Text)
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
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
using System;
using System.Collections.Generic;
using System.ComponentModel;
using System.Data;
using System.Drawing;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
using System.Windows.Forms;
 
namespace MetroUI
{
    public partial class Form1 : MetroFramework.Forms.MetroForm
    {
        public Form1()
        {
            InitializeComponent();
        }
 
        
 
        private async void mtAdd_Click(object sender, EventArgs e)
        {
            using (frmAddEditStudent frm = new frmAddEditStudent(new Student() { Gender = false }))
            {
                if (frm.ShowDialog() == DialogResult.OK)
                {
                    try
                    {
                        studentBindingSource.Add(frm.StudentInfo);
                        db.Students.Add(frm.StudentInfo);
                        await db.SaveChangesAsync();
                    }
                    catch (Exception ex)
                    {
                        MessageBox.Show(ex.Message, "Message", MessageBoxButtons.OK, MessageBoxIcon.Error);
                    }
                }
            }
        }
 
        private void mtRefresh_Click(object sender, EventArgs e)
        {
            Cursor.Current = Cursors.WaitCursor;
            studentBindingSource.DataSource = db.Students.ToList();
            cityBindingSource.DataSource = db.Cities.ToList();
            Cursor.Current = Cursors.Default;
        }
        DbEntities db;
        private void Form1_Load(object sender, EventArgs e)
        {
            
            db = new DbEntities();
            studentBindingSource.DataSource = db.Students.ToList();
            cityBindingSource.DataSource = db.Cities.ToList();
 
        }
 
        private async void mtEdit_Click(object sender, EventArgs e)
        {
            Student obj = studentBindingSource.Current as Student;
            if (obj != null)
            {
                using (frmAddEditStudent frm = new frmAddEditStudent(obj))
                {
                    if (frm.ShowDialog() == DialogResult.OK)
                    {
                        try
                        {
                            studentBindingSource.EndEdit();
                            await db.SaveChangesAsync();
                        }
                        catch (Exception ex)
                        {
                            MessageBox.Show(ex.Message, "Message", MessageBoxButtons.OK, MessageBoxIcon.Error);
                        }
                    }
                }
            }
        }
 
        private async void mtDelete_Click(object sender, EventArgs e)
        {
            int rows = dataGridView.RowCount;
            for (int i = rows - 1; i >= 0; i--)
            {
                if (dataGridView.Rows[i].Selected)
                {
                    db.Students.Remove(dataGridView.Rows[i].DataBoundItem as Student);
                    studentBindingSource.RemoveAt(dataGridView.Rows[i].Index);
                }
            }
            try
            {
                if (MessageBox.Show("Do you want to save the changes?", "Message", MessageBoxButtons.YesNo, MessageBoxIcon.Question) == DialogResult.Yes)
                {
                    studentBindingSource.EndEdit();
                    await db.SaveChangesAsync();
                }
            }
            catch (Exception ex)
            {
                MessageBox.Show(ex.Message, "Message", MessageBoxButtons.OK, MessageBoxIcon.Error);
            }
        }
 
        private async void mtSave_Click(object sender, EventArgs e)
        {
            try
            {
                if (MessageBox.Show("Do you want to save the changes?", "Message", MessageBoxButtons.YesNo, MessageBoxIcon.Question) == DialogResult.Yes)
                {
                    studentBindingSource.EndEdit();
                    await db.SaveChangesAsync();
                }
            }
            catch (Exception ex)
            {
                MessageBox.Show(ex.Message, "Message", MessageBoxButtons.OK, MessageBoxIcon.Error);
            }
        }
 
 
 
        private void studentBindingSource_CurrentChanged(object sender, EventArgs e)
        {
 
        }
 
 
        private void button1_Click(object sender, EventArgs e)
        {
          
 
            for (int i = 0; i < dataGridView.RowCount; i++)
            {
                dataGridView.Rows[i].Selected = false;
                for (int j = 0; j < dataGridView.ColumnCount; j++)
                    if (dataGridView.Rows[i].Cells[j].Value != null)
                        if (dataGridView.Rows[i].Cells[j].Value.ToString().Contains(metroTextBox1.Text))
                        {
                            dataGridView.Rows[i].Selected = true;
                            break;
                        }
            }
        }
        private void metroTextBox1_TextChanged(object sender, EventArgs e)
        {
 
            for (int i = 0; i < dataGridView.Rows.Count - 1; i++)
            {
                dataGridView.CurrentCell = null;
                dataGridView.Rows[i].Visible = false;
                for (int c = 0; c < dataGridView.Columns.Count; c++)
 
                {
 
                    if (dataGridView[c, i].Value.ToString() == metroTextBox1.Text)
 
                    {
                        dataGridView.Rows[i].Visible = true;
                        break;
 
 
                    }
                }
 
            }
 
        }
    }
    }
Usaga
1351 / 1105 / 192
Регистрация: 21.01.2016
Сообщений: 4,010
Завершенные тесты: 2
11.01.2017, 08:59     Поиск в DataGridView #4
Weroum, значит dataGridView[c, i].Value содержит null.
Igr_ok
253 / 240 / 84
Регистрация: 04.08.2015
Сообщений: 624
11.01.2017, 10:50     Поиск в DataGridView #5
Сообщение было отмечено автором темы, экспертом или модератором как ответ
Weroum, почитайте про фильтрацию данных и не изобретайте велосипед.
Yandex
Объявления
11.01.2017, 10:50     Поиск в DataGridView
Ответ Создать тему
Опции темы

Текущее время: 06:15. Часовой пояс GMT +3.
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2017, vBulletin Solutions, Inc.
Рейтинг@Mail.ru