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

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

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

Поиск в DataGridView - C#

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

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

Нажав на значение (строку) из одного DataGridView поиск в другом DataGridView - C#
Всем привет. Есть 2 DataGridView в одном только дата, а во втором дата и много других столбиков. Нужно при нажатии в 1 DataGridView на дату...

Поиск по dataGridView - C#
Всем доброго дня! Прошу помочь с одним циклом поиска по dataGridView. for (int i = 0; i < dataGridView1.Rows.Count - 1; i++) ...

MySQL Поиск по DataGridView - C#
Имеется DataGridView, заполненный информацией из БД MySQL Заполняю грид следующим образом: public void dataLoad() { ...

Поиск в DataGridView - C#
Доброе время суток Господа. Пожалуйста помогите. Создал Windows Forms на C# добавил DataGridView прописал путь кк Базе Access, потом...

Linq поиск по datagridview - C#
Добрый день Для поиска Linq использую код dataGridView1.Rows.Cast<DataGridViewRow>() .Where(x => (int)x.Cells.Value == 1) ...

Точный поиск по DataGridView - C#
Добрый вечер, как осуществить точный поиск по одному столбцу DGV? На просторах нашла только неточный поиск. Мне необходимо, чтобы при...

4
Usaga
Эксперт .NET
2066 / 1726 / 304
Регистрация: 21.01.2016
Сообщений: 6,381
Завершенные тесты: 2
11.01.2017, 07:21 #2
Weroum, ошибка говорит о том, что где в коде есть неинициализированная ссылка. Запусти свою программу в студии в режиме отладки (Debug) и посмотри на строку, на которую она тебе укажет (а она укажет).
0
Weroum
0 / 0 / 0
Регистрация: 29.10.2016
Сообщений: 15
11.01.2017, 07:28  [ТС] #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;
 
 
                    }
                }
 
            }
 
        }
    }
    }
0
Usaga
Эксперт .NET
2066 / 1726 / 304
Регистрация: 21.01.2016
Сообщений: 6,381
Завершенные тесты: 2
11.01.2017, 08:59 #4
Weroum, значит dataGridView[c, i].Value содержит null.
0
Igr_ok
312 / 299 / 104
Регистрация: 04.08.2015
Сообщений: 769
11.01.2017, 10:50 #5
Лучший ответ Сообщение было отмечено автором темы, экспертом или модератором как ответ
Weroum, почитайте про фильтрацию данных и не изобретайте велосипед.
1
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
11.01.2017, 10:50
Привет! Вот еще темы с ответами:

Поиск строки в DataGridView - C#
Хочу добавить возможность поиска строки в DataGridView для своего проекта. Форма поиска есть во вложениях. Вопрос как реализовать поиск?...

Поиск по базе DataGridView - C#
Помогите пожалуйста сделать нормальный поиск по базе , а то уже 2 день сижу не понимаю как он должен работать.У кого не спрошу все на...

.NET 4.x Поиск по данным в dataset/datagridview - C#
Добрый вечер! Имеется следующий код: using System; using System.Data; using System.Windows.Forms; using System.Data.SqlClient; ...

Поиск и вывод с combobox в datagridview - C#
Нужно при выборе значения в combobox выводило только одну выбранную строчу в datagridview. Думал может через запрос. private void...


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

Или воспользуйтесь поиском по форуму:
5
Yandex
Объявления
11.01.2017, 10:50
Ответ Создать тему
Опции темы

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