Страница: 1 | 2 |
Вопрос: Фильтрация в DataGrid в VB.net
Добавлено: 07.11.06 21:35
Автор вопроса: george | ICQ: 301137589
Народ, у меня есть таблица
1 Сергеев Антикризисное управление
2 Сидоров Математических методов в экономике
3 Иванов Антикризисное управление
4 Петров Математических методов в экономике
мне нужно в грид вывести только антикризисное управление. Как это сделать. Заранее спасибо
Ответы
Всего ответов: 21
Номер ответа: 1
Автор ответа:
Neco
ICQ: 247906854
Вопросов: 133
Ответов: 882
Web-сайт:
Профиль | | #1
Добавлено: 07.11.06 21:37
ограничив в запросе или указав условие (оно ж несложное) в фильтре
Номер ответа: 2
Автор ответа:
george
ICQ: 301137589
Вопросов: 18
Ответов: 31
Профиль | | #2
Добавлено: 07.11.06 21:43
В запросе не могу, так как выбор антикризисного управления осуществляется непосредственно в программе (то есть есть combobox, в котором мы можем выбирать антикризисное управление или математические методы в экономике).
На счет фильтрации не понял, можно поподробнее. Если можно то с кодом
Номер ответа: 3
Автор ответа:
Neco
ICQ: 247906854
Вопросов: 133
Ответов: 882
Web-сайт:
Профиль | | #3
Добавлено: 07.11.06 22:40
у bindingsource, по крайней мере, точно есть свойство Filter. ставишь туды predmet_id=5 (где 5 это id антикризисного управления в таблице, я так понимаю, предметов) и у тебя отображается тока то, что надо. но там по-моему скупо всё - даже нельзя like делать, кажтца...
всё-таки способ через запросы представляется мне более гибким. не вижу никакой сложности назначать в качестве истоника гриду таблицу (через bindingsource) сформированную соот-щим запросом после выбора в комбо нужного значения.
тут кода нет - мышой надо тыкать по большей части.
Номер ответа: 4
Автор ответа:
Neco
ICQ: 247906854
Вопросов: 133
Ответов: 882
Web-сайт:
Профиль | | #4
Добавлено: 07.11.06 22:52
ну вот код получившийся:
Private Sub Form1_Load(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles MyBase.Load
'TODO: This line of code loads data into the 'DataSet1.BANK' table. You can move, or remove it, as needed.
Me.BANKTableAdapter.Fill(Me.DataSet1.BANK)
End Sub
Private Sub Button1_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button1.Click
 ataSet1BindingSource.Filter = "id>50"
End Sub
Private Sub Button2_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button2.Click
'Dim tabla As New DataSet1.BANKDataTable ' мона и новую табличку закинуть
Dim adap As New OracleClient.OracleDataAdapter("select * from odt.bank where lower(name) like '%народ%'", BANKTableAdapter.Connection)
Me.DataSet1.BANK.Rows.Clear()
adap.Fill(Me.DataSet1.BANK)
adap.Dispose()
End Sub
End Class
Номер ответа: 5
Автор ответа:
george
ICQ: 301137589
Вопросов: 18
Ответов: 31
Профиль | | #5
Добавлено: 07.11.06 23:12
Честно говоря не нашел даже BindingSource в msdn и как это применять
Номер ответа: 6
Автор ответа:
george
ICQ: 301137589
Вопросов: 18
Ответов: 31
Профиль | | #6
Добавлено: 07.11.06 23:12
Честно говоря не нашел даже BindingSource в msdn и как это применять
Номер ответа: 7
Автор ответа:
Neco
ICQ: 247906854
Вопросов: 133
Ответов: 882
Web-сайт:
Профиль | | #7
Добавлено: 07.11.06 23:25
я и в первый раз прекрасно слышал.
млин я же говорю тут зависит от того как там ручками склеишь - у меня сначала тож несвязуха была, потом вроде всё устаканилось, счас по одному шаблону работаю, вроде нормуль.
1. создаёшь новый проект.
2. делаешь (где-то там в менюхах сверху) Add New Data Source (или типа того).
3. проходишь по мастеру, бла-бла выбираешь БД, создаёшь datasetXXX, к примеру.
4. кидаешь на форму таблицу datagridview
5. ставишь у неё истоником datasetxxx - точнее выбираешь его в othersources, он сам не выберется, студия создаст bindingsource, назначит его в качестве источника гриду, а самому bs (млин пора сокращать) созданный тут же datasource1.
6. у bs ставишь datamember какую-нить табличку из своей БД и фильтр там же увидишь.
всё это в принципе мона со спокойной душой редактировать и удалять - просто чтобы принцип работы освоить, имхо. bs по сути связка между таблицей и гридом.
дальше кодом можно перезаполнить DataSet1.YourDataTable или вообще его нах с формы удалить, если не любишь (как я) визуальные составляющие.
Номер ответа: 8
Автор ответа:
george
ICQ: 301137589
Вопросов: 18
Ответов: 31
Профиль | | #8
Добавлено: 07.11.06 23:30
Спасибо за подробное объяснение. datagridview в смысле dataview?
Номер ответа: 9
Автор ответа:
george
ICQ: 301137589
Вопросов: 18
Ответов: 31
Профиль | | #9
Добавлено: 08.11.06 01:08
Блин, может я совсем тупой, но в vb.net я не нашел datagridview, а в datagrid в datamember я не нашел фильтр. bindingsourse я тоже не нашел (первые 4 этапа точно так же делал)
Номер ответа: 10
Автор ответа:
Neco
ICQ: 247906854
Вопросов: 133
Ответов: 882
Web-сайт:
Профиль | | #10
Добавлено: 08.11.06 01:16
всё описанное про 2005-ю студию - мож у тебя 2003?
тады я не советчик... меня она бесит
Номер ответа: 11
Автор ответа:
george
ICQ: 301137589
Вопросов: 18
Ответов: 31
Профиль | | #11
Добавлено: 08.11.06 01:19
ага, 2003. А что есть большие различия? Можно где-нибудь скачать обновления до 2005? или же придется все-таки покупать диск?
Номер ответа: 12
Автор ответа:
Artyom
Разработчик
Вопросов: 130
Ответов: 6602
Профиль | | #12
Добавлено: 08.11.06 01:24
Покупать совсем не обязательно, можно скачать Express-редакцию Visual Studio 2005 совершенно бесплатно.
http://msdn.microsoft.com/vstudio/express/
Номер ответа: 13
Автор ответа:
Neco
ICQ: 247906854
Вопросов: 133
Ответов: 882
Web-сайт:
Профиль | | #13
Добавлено: 08.11.06 01:34
отличия просто огромные, на мой взгляд.
очень советую скачать или купить.
ещё на многих дисках к журналам экспресс-версии имеются.
Номер ответа: 14
Автор ответа:
george
ICQ: 301137589
Вопросов: 18
Ответов: 31
Профиль | | #14
Добавлено: 08.11.06 01:43
всем огромное спасибо, буду разбираться с 2005 (хотя только 2 дня назад взялся за 2003). Скоро умру от объема информации. А все из-за того что в лом было писать на VB6.
Номер ответа: 15
Автор ответа:
george
ICQ: 301137589
Вопросов: 18
Ответов: 31
Профиль | | #15
Добавлено: 08.11.06 14:07
Поставил я vb.net2005. Сделал все, как сказали. Но возникла проблема: мне надо вместо строчки DataSet1BindingSource.Filter = "id>50" написать DataSet1BindingSource.Filter = "id=combobox1.text". А на это он возмущается. Говорит "{"Cannot find column [combobox1.text]."}"