Форум программистов, компьютерный форум, киберфорум
C# Windows Forms
Войти
Регистрация
Восстановить пароль
Карта форума Темы раздела Блоги Сообщество Поиск Заказать работу  
 
Рейтинг 4.50/8: Рейтинг темы: голосов - 8, средняя оценка - 4.50
0 / 0 / 0
Регистрация: 22.11.2013
Сообщений: 3
1

Деление ячейки datagridview по словам

29.03.2015, 16:55. Показов 1649. Ответов 2
Метки нет (Все метки)

Author24 — интернет-сервис помощи студентам
Доброе время суток.

Делаю небольшую СУБД в связке C# + .mdb и появился "подводный камень":
старые БД написаны на FoxPro еще во времена, когда я под стол пешком ходил и старая СУБД ведется со времен DOSа. Однако, данные, которые вводят до сих пор, мне требуются.

Считать их в datagridview труда не составило.
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
//кнопка "Обзор"
 public void button1_Click(object sender, EventArgs e)
        {
            OpenFileDialog fdlg = new OpenFileDialog();
            fdlg.Title = "Выберите файл RELAX";
            fdlg.InitialDirectory = @"c:\";
            fdlg.FileName = textBox1.Text;
            fdlg.Filter = "база данных DBF(*.dbf)|*.dbf";
            fdlg.FilterIndex = 1;
            if (fdlg.ShowDialog() == DialogResult.OK)
            {
 
                LoadTable(fdlg.FileName, dataGridView1);
 
            }
            textBox1.Text = fdlg.FileName;
        }
 
//считываем данные
public void LoadTable(string path, DataGridView dataGrid)
        {
            try
            {
 
                var connectionString = "Provider=VFPOLEDB.1;Data Source=" + path + "";
                var con = new OleDbConnection(connectionString);
                con.Open();
                var adapter = new OleDbDataAdapter("SELECT CPCONVERT(866,1251, name) as NAME, SEX, DR, C_T, CPCONVERT(866,1251, adres) as ADRES, DBEG, DEND, KATEG, DIAGOUT FROM " + Path.GetFileNameWithoutExtension(path), con);
                con.Close();
                var dataSet = new DataSet();
                adapter.Fill(dataSet);
                dataGrid.DataSource = dataSet.Tables[0];
            }
            catch (Exception err)
            {
                MessageBox.Show(err.Message + " " + path, "Ошибка открытия DBF таблицы", MessageBoxButtons.OK, MessageBoxIcon.Error);
            }
        }
Но в этих DBF ФИО записываются в одну ячейку:
Деление ячейки datagridview по словам


В моей же базе mdb фамилия имя и отчество в разных ячейках.
Деление ячейки datagridview по словам


Собственно, вопрос: как можно реализовать деление ФИО на разные ячейки?
Пробовал через промежуточное сохранение и Split()'ом указывать пробел при считывании, но в адресе тоже есть пробелы и они тоже делятся.
Вариант открытия новой формы с новой datagridview с уже отредактированным содержимым - был бы идеальным, потому что придется подключать xml, для замены цифр на слова (например, 2 = "женский", 1 = "мужской")
0
Programming
Эксперт
94731 / 64177 / 26122
Регистрация: 12.04.2006
Сообщений: 116,782
29.03.2015, 16:55
Ответы с готовыми решениями:

Фильтр по всем словам в datagridview
аудиозаписиBindingSource.Filter = " LIKE'" + textBox1.Text + "%'"; у меня есть этот код, но он...

Изменение содержимого одной ячейки Datagridview после изменения другой ячейки
Здравствуйте. Есть Datagridview с 2 столбцами. Столбцы типа ComboBox. В 1 столбце уже забиты...

Индекс выбранной ячейки DataGridView при смене ячейки через Tab
Добрый день, Коллеги! Подскажите, как получить индекс ячейки в DataGridWiew, находящейся в...

Форматирование ячейки в dataGridView. Как поменять цвет определенной ячейки
Хочу поменять цвет выбранной ячейки, так что бы когда при выбраной строки цвет ячейки оставался...

2
2080 / 1238 / 464
Регистрация: 20.12.2014
Сообщений: 3,237
31.03.2015, 20:28 2
Цитата Сообщение от redzh Посмотреть сообщение
как можно реализовать деление ФИО на разные ячейки?
Во-первых, можно сделать пустой грид с разделенными столбцами ФИО и заполнить его, предварительно извлекая данные из БД через DataReader, при этом при извлечении разделить тем же сплитом данные только первого столбца на три массива.
Во-вторых, можно сделать поверх вашего грида еще один, с нужными вам столбцами, написать в цикле перекачку данных из одного в другой, опять же деля сплитом данные первого столбца. А затем сделать первый грид невидимым.
В-третьих, сделать вкладки, и на второй разместить правильный грид. А далее как во втором варианте.
И в-четвертых, как вы сами сказали:
Цитата Сообщение от redzh Посмотреть сообщение
Вариант открытия новой формы с новой datagridview
Почему бы и нет? В чем проблема это сделать?
0
0 / 0 / 0
Регистрация: 22.11.2013
Сообщений: 3
01.04.2015, 09:51  [ТС] 3
chumich, спасибо за подсказку.
Я решаю эту проблему другим способом - нашел в списке баз данных еще одну .dbf. Она содержит данные по людям и там ФИО в разных столбцах + данные, которые также будут необходимы.
Я просто совместил 2 эти базы по ключу (в моем случае - номер истории болезни) и вывел данные "как мне надо" из 2-х БД.
Для "поднятия скилла" попробую ваше предложение реализовать в тестовом проекте.
0
01.04.2015, 09:51
IT_Exp
Эксперт
87844 / 49110 / 22898
Регистрация: 17.06.2006
Сообщений: 92,604
01.04.2015, 09:51
Помогаю со студенческими работами здесь

При выделении ячейки в DataGridView контрол перемещается и становится по правую сторону ячейки
Всем доброе утро. В приложении есть DataGridView и контрол со всеми функциями по управлению...

Перенос данных с формы и одной ячейки dataGridView в другую форму и ячейку dataGridView
Подскажите пожалуйста, у меня есть две таблицы которые выводятся на разных формах в dataGridView...

Деление ячейки в таблице по диагонали
Каким образом можно создать такую таблицу?

Деление ячейки Пятёрочка, улица Строителей 5
Здравствуйте, Есть таблицы Краткая инфа(магазин,дальше другие данные) Полная инфа (имя...


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

Или воспользуйтесь поиском по форуму:
3
Ответ Создать тему
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2024, CyberForum.ru