powered by simpleCommunicator - 2.0.55     © 2025 Programmizd 02
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Форумы / WinForms, .Net Framework [игнор отключен] [закрыт для гостей] / Источник данных для DataGridView
35 сообщений из 35, показаны все 2 страниц
Источник данных для DataGridView
    #38752350
Северянин
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Заполняю данными DataGridView из таблицы MS SQL
Если все поля таблицы, тогда выводит нормально:

класс InitSQL
Код: 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.
  public class InitSQL
    {
        public SqlConnection con;
        public SqlDataAdapter adapter;
        public DataSet ds;

        public void MySQLConnect(string priemCommandSQL)
        {
            con = new SqlConnection();
            con.ConnectionString = MyClassGlobal.connectString; //Строка подключения из другого класса
            ds = new DataSet();
            con.Open();
            adapter = new SqlDataAdapter(priemCommandSQL, con);            
            
            try
            {
                adapter.Fill(ds, "table");
            }
            catch
            {
                MessageBox.Show(@"Не могу подключиться к базе !!! ");
            }
            finally
            {
                con.Close();
            }
        }




код-1(получается)
Код: c#
1.
2.
3.
4.
5.
6.
 private void DepartmentsDirectoryBasic_Load(object sender, EventArgs e)
        {
            InitSQL initSql = new InitSQL();
            initSql.MySQLConnect("Select * from departments");
            dataGridView1.DataSource = initSql.ds.Tables["table"];
        }




А если нужно не все поля (например, id не нужен), то как сделать?
Пробую так:
код-2(не получается)
Код: c#
1.
2.
3.
4.
5.
6.
 private void DepartmentsDirectoryBasic_Load(object sender, EventArgs e)
        {
            InitSQL initSql = new InitSQL();
            initSql.MySQLConnect("Select * from departments");
            dataGridView1.DataSource = initSql.ds.Tables["table"].Columns["name_dep"];
        }



то ничего не получается.
Если можно, ответьте поподробнее(лучше на пальцах), я недавно начал изучать C#, не силен в терминологии, да и очевидные для профессионала ситуации(пока) понимаю не очень.
И, если не затруднит, киньте ссылку, как такие вещи делаются.
Убедительная просьба: без лишнего му..звонства.
Заранее благодарю.
...
Рейтинг: 0 / 0
Источник данных для DataGridView
    #38752352
Pallaris
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Код: c#
1.
initSql.MySQLConnect("Select name_dep from departments");



или скрыть ненужные столбцы в гриде
...
Рейтинг: 0 / 0
Источник данных для DataGridView
    #38752357
Сон Веры Павловны
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Северянини очевидные для профессионала ситуации(пока) понимаю не очень.
Поэтому некоторые факты придется принимать на веру. Понимание придет потом.
Факт №1 из числа таких - использовать "select * from ..." является плохой практикой. Всегда явно перечисляйте все нужные поля, даже если в выборке участвуют все поля таблицы.
...
Рейтинг: 0 / 0
Источник данных для DataGridView
    #38752358
Северянин
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Pallaris,
Первый вариант однозначно не пойдет, потому как мне нужно заливать на сервер обновленные данные, без id как я это сделаю?
А как мне скрыть ненужные столбцы в гриде в данной ситуации?
...
Рейтинг: 0 / 0
Источник данных для DataGridView
    #38752359
Северянин
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Сон Веры Павловны,
Я читал об этом. Но у меня есть таблицы > 100 полей, лень врукопашную воевать с ними.
Впрочем, это уже другой вопрос.
...
Рейтинг: 0 / 0
Источник данных для DataGridView
    #38752360
Pallaris
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
СеверянинА как мне скрыть ненужные столбцы в гриде в данной ситуации?

Сначала нужно создать столбцы в гриде - правой кнопкой на гриде, в меню пункт Edit Columns. Там создаешь колонки и связываешь с полями из БД (свойство Data property name у колонки). То поле, которое не хочешь выводить - для него просто не создаешь колонку (или скрываешь)
...
Рейтинг: 0 / 0
Источник данных для DataGridView
    #38752363
Pallaris
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
СеверянинНо у меня есть таблицы > 100 полей, лень врукопашную воевать с ними.

Это еще более плохая практика, чем "select * from"
...
Рейтинг: 0 / 0
Источник данных для DataGridView
    #38752370
Северянин
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Pallaris,
Пробовал и так.
DataPropertyName я задал свойство initSql.ds.Tables["table"].Columns["name_dep"]
Не понимает грид меня.
Может в самом гриде надо создать (или как-то указать) источник данных? Если да, то как это сделать?
В общем, ситуация такая: источник данных у меня есть, он правильный, а правильно прикрутить к гриду (в силу своей неопытности в шарпе) я не могу. Совсем застрял. Подскажите, в каком направлении двигаться?
...
Рейтинг: 0 / 0
Источник данных для DataGridView
    #38752371
Pallaris
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
СеверянинНе понимает грид меня.


Просто name_dep укажи
...
Рейтинг: 0 / 0
Источник данных для DataGridView
    #38752373
Северянин
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
PallarisСеверянинНе понимает грид меня.


Просто name_dep укажи
Без источника не видит.
...
Рейтинг: 0 / 0
Источник данных для DataGridView
    #38752376
Pallaris
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
СеверянинБез источника не видит.

Вот твой источник же
Код: c#
1.
2.
3.
4.
5.
6.
private void DepartmentsDirectoryBasic_Load(object sender, EventArgs e)
        {
            InitSQL initSql = new InitSQL();
            initSql.MySQLConnect("Select * from departments");
            dataGridView1.DataSource = initSql.ds.Tables["table"];
        }



Ты ж говорил, что это работает?
...
Рейтинг: 0 / 0
Источник данных для DataGridView
    #38752377
Северянин
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
PallarisСеверянинБез источника не видит.

Вот твой источник же
Код: c#
1.
2.
3.
4.
5.
6.
private void DepartmentsDirectoryBasic_Load(object sender, EventArgs e)
        {
            InitSQL initSql = new InitSQL();
            initSql.MySQLConnect("Select * from departments");
            dataGridView1.DataSource = initSql.ds.Tables["table"];
        }



Ты ж говорил, что это работает?

Этот источник "перебивает" все то, что я задаю в DataPropertyName грид'а
Иными словами, если проходит

dataGridView1.DataSource = initSql.ds.Tables["table"];

не важно, что я там в гриде задаю, все равно выводятся все поля.
Блин, кручусь все вокруг да около, а решения найти не могу.
facepalm
...
Рейтинг: 0 / 0
Источник данных для DataGridView
    #38752378
Pallaris
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Северянинне важно, что я там в гриде задаю, все равно выводятся все поля.

Добавь
Код: c#
1.
2.
dataGridView1.AutoGenerateColumns = false;
dataGridView1.DataSource = initSql.ds.Tables["table"];



facepalm

Не надо переживать. Во-первых, студия развивается уже много лет, и 99.9% твоих вопросов в ней решены успешно. Во-вторых, твой вопрос - binding datagridview column to data - это типичный вопрос новичка, разжеванный в инете тысячу раз
...
Рейтинг: 0 / 0
Источник данных для DataGridView
    #38752379
Северянин
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Pallaris,
Кэп, спасибо, все получилось.
...
Рейтинг: 0 / 0
Источник данных для DataGridView
    #38752380
Северянин
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
PallarisСеверянинНо у меня есть таблицы > 100 полей, лень врукопашную воевать с ними.

Это еще более плохая практика, чем "select * from"

А вот с этим утверждением не согласен. Вы ведь не знаете задач, которые я решаю.

p.s.
С СУБД я работаю не первый год.
...
Рейтинг: 0 / 0
Источник данных для DataGridView
    #38752386
Pallaris
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
СеверянинА вот с этим утверждением не согласен. Вы ведь не знаете задач, которые я решаю.


Будет любопытно послушать
...
Рейтинг: 0 / 0
Источник данных для DataGridView
    #38752505
Северянин
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Pallaris,
Ну немного загнул, не больше 100 полей в таблице, но под сотню. О людях данные в основном. Разное, статистика, тыры-пыры. Ничего особенного. Не хочу распространяться, вдруг работодателю не понравится. Вообще, у меня вполне нормализованные БД. Есть проект с довольно серьезной конторой, работает стабильно, но он старый, освою шарп, там видно будет.
На самом деле я на этом форуме под другим ником. Под своим неудобно ламерские вопросы задавать, тут в соседних ветках иногда припоминают подобные вещи.
...
Рейтинг: 0 / 0
Источник данных для DataGridView
    #38752538
Фотография Изопропил
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
СеверянинНо у меня есть таблицы > 100 полей, лень врукопашную воевать с ними.

зачем врукопашную?

phpmyadmin лёгким движением мыши позволяет построить список полей
...
Рейтинг: 0 / 0
Источник данных для DataGridView
    #38752594
Северянин
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
ИзопропилСеверянинНо у меня есть таблицы > 100 полей, лень врукопашную воевать с ними.

зачем врукопашную?

phpmyadmin лёгким движением мыши позволяет построить список полей

А, ну да, конечно, если допустить, что MS SQL и MySQL - это одно и то же, тогда вот phpmyadmin самое оно то.
...
Рейтинг: 0 / 0
Источник данных для DataGridView
    #38752596
Северянин
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Изопропил,
На самом деле список полей и на MS SQL легко скриптуется, но "select * " моя давняя привычка, с которой я пытаюсь бороться.
...
Рейтинг: 0 / 0
Источник данных для DataGridView
    #38752612
Фотография Изопропил
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
СеверянинА, ну да, конечно, если допустить, что MS SQL и MySQL - это одно и то же
Код: c#
1.
MySQLConnect 

как бы намекает в отсутствие иной информации
...
Рейтинг: 0 / 0
Источник данных для DataGridView
    #38752636
Северянин
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Изопропил... пропущено
как бы намекает в отсутствие иной информации
Это намекает, что вы неправильно код прочитали. Обратите внимание: самая-самая первая строка моего поста:

СеверянинЗаполняю данными DataGridView из таблицы MS SQL

И еще, в коде:

Код: c#
1.
2.
3.
4.
5.
con = new SqlConnection();
            con.ConnectionString = MyClassGlobal.connectString; //Строка подключения из другого класса
            ds = new DataSet();
            con.Open();
            adapter = new SqlDataAdapter(priemCommandSQL, con);   



У MySQL другой поставщик. Тогда было бы так:

Код: c#
1.
2.
3.
4.
5.
con = new MySqlConnection();
            con.ConnectionString = MyClassGlobal.connectString; //Строка подключения из другого класса
            ds = new DataSet();
            con.Open();
            adapter = new SqlDataAdapter(priemCommandSQL, con);   



Но вы правы, я сбил вас с толку своей переменной MySQLConnect. Извините, я бы и сам, наверное, повелся. Просто префикс "my" я добавлял к объявляемым мною переменным ещё до того, как узнал, что есть MySQL. Потом свой стиль менять не стал.
...
Рейтинг: 0 / 0
Источник данных для DataGridView
    #38752643
Сон Веры Павловны
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
СеверянинНо у меня есть таблицы > 100 полей, лень врукопашную воевать с ними.
Хоть 500.
Код: sql
1.
2.
3.
4.
5.
6.
select stuff(v.x, 1, 2, '') from (
  select ', '+column_name from information_schema.columns
  where table_schema='myschema' and table_name='MyTable'
  order by ordinal_position
  for xml path('')
) v(x)
...
Рейтинг: 0 / 0
Источник данных для DataGridView
    #38752648
Фотография Где-то в степи
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
СеверянинPallarisпропущено...


Это еще более плохая практика, чем "select * from"

А вот с этим утверждением не согласен. Вы ведь не знаете задач, которые я решаю.

p.s.
С СУБД я работаю не первый год.
Вы то можете не соглашаться, но select * это антипаттрен, в сети много об этом рассказывают, в вашем случае
когда > 100 полей это анти втройне, к стати расскажите о описании пипла где более ста полей, посмеёмся над вашей нормализацией ))
...
Рейтинг: 0 / 0
Источник данных для DataGridView
    #38752655
Сон Веры Павловны
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Где-то в степиВы то можете не соглашаться, но select * это антипаттрен, в сети много об этом рассказывают, в вашем случае
когда > 100 полей это анти втройне, к стати расскажите о описании пипла где более ста полей, посмеёмся над вашей нормализацией ))
В таблице - однозначно, но это может быть какая-нибудь тяжелая аналитическая вьюха.
...
Рейтинг: 0 / 0
Источник данных для DataGridView
    #38752658
Фотография Где-то в степи
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Сон Веры Павловны,
может быть и вьюха, но чел который ее сгенерил навряд ли тащил это все гуно на клиента (*) ради нескольких полей..
детектирую другое ))
...
Рейтинг: 0 / 0
Источник данных для DataGridView
    #38752660
Фотография Где-то в степи
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Сон Веры Павловны, может быть и там блобы с фейсами и позами, во щастьето привалило колектору ))
...
Рейтинг: 0 / 0
Источник данных для DataGridView
    #38752667
Фотография Где-то в степи
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
а если блобы жирные будут сидеть в LOH, datetable чанковать не умеет это не есть гут?
...
Рейтинг: 0 / 0
Источник данных для DataGridView
    #38752673
Фотография Изопропил
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Где-то в степи,

многовато гипотез, всё должно быть проще и страшнее
...
Рейтинг: 0 / 0
Источник данных для DataGridView
    #38752794
Северянин
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Где-то в степи,

Не, я понимаю, что вы чел реально умный, (хотя в слове антипаттрен две ошибки сделали), но на пустом месте стёб устраивать - некрасиво, что-ли. Я вот нигде не встречал утверждения, что если в таблице 100 полей, значит проектировщик идиот. В конце концов, вам что, жалко?
Вообще, я у Петковича читал, что любую базу можно загнать в одну таблицу. Вот это плохо, тут я даже спорить не буду. Да, и еще, в большинстве источников, где всерьез обсуждался этот вопрос, утверждается, что идеальной нормализации не существует.
Вот мнение К. Дейта по этому вопросу:
" Нормализация в точности и является теми принципами здравого смысла, которыми руководствуется в своём сознании зрелый проектировщик, то есть принципы нормализации — это формализованный здравый смысл. Между тем, идентифицировать и формализовать принципы здравого смысла — весьма трудная задача, и успех в её решении является существенным достижением. "

Давайте не будем идентифицировать и формализовать мой здравый смысл, лады?
...
Рейтинг: 0 / 0
Источник данных для DataGridView
    #38752810
Фотография Изопропил
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Северянинхотя в слове антипаттрен две ошибки сделали
не две ошибки, а одна перестановка букв - опечатка называется.
...
Рейтинг: 0 / 0
Источник данных для DataGridView
    #38752824
Фотография Где-то в степи
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Северянин,
иррелевантно, значит таки более ста полей с блобами ((
мда, пропала квартира (с)
...
Рейтинг: 0 / 0
Источник данных для DataGridView
    #38752832
Фотография Где-то в степи
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Северянин,
Код: c#
1.
значит проектировщик идиот. В конце концов, вам что, жалко?


да не жалко, и с чего вы взяли что проектировщик идиот?
Просто решил улыбнуться над вашей таблицей.
Или вы латентно чувствуете что косяк есть и впадаете в истерику, уверяю Вас, всему свое время,
не боги горшки обжигают, узбагойтесь - это пройдет с трудом и тренировками .
зы пойду ка я пожму ...
...
Рейтинг: 0 / 0
Источник данных для DataGridView
    #38752837
Северянин
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Где-то в степи... Пропущено
Или вы латентно чувствуете что косяк есть и впадаете в истерику...
... Пропущено

А блобы-то откуда взялись? О них речь не шла.
Что до меня, так я сохраняю олимпийское спокойствие. Ваши насмешки меня не задевают.
Гы. Пойду и я понормализовываю.
...
Рейтинг: 0 / 0
Источник данных для DataGridView
    #38754158
Северянин
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Блин, бодался-бодался...
Если кому интересно, все подробно написано здесь: http://msdn.microsoft.com/ru-ru/library/fbk67b6z(v=vs.110).aspx
За пару минут решил то, над чем еба... бился целый день.
...
Рейтинг: 0 / 0
35 сообщений из 35, показаны все 2 страниц
Форумы / WinForms, .Net Framework [игнор отключен] [закрыт для гостей] / Источник данных для DataGridView
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


Просмотр
0 / 0
Close
Debug Console [Select Text]