Модераторы: gambit
  

Поиск:

Ответ в темуСоздание новой темы Создание опроса
> Как прочитать свойства столбца БД MS Access, Проблема чтения caption столбца 
:(
    Опции темы
sharp2005
Дата 27.6.2008, 09:47 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



Профиль
Группа: Участник
Сообщений: 26
Регистрация: 6.8.2007

Репутация: нет
Всего: 1



Проблема следующего плана:
Есть БД с таблицей, столбец которой имеет имя ‘Column1’ и caption ‘Столбец1’, при попытке прочитать свойства столбца caption выдает имя столбца. Вот, что я делаю (возможно, что не то):
Код

using System;
using System.Collections.Generic;
using System.Text;
using System.Data;
using System.Data.OleDb;

namespace GetColumnCaption
{
    class Program
    {
        static void Main(string[] args)
        {
            //Задание строки соединения специально для OleDb
            OleDbConnection thisConnection = 
                new OleDbConnection(@"Provider=Microsoft.Jet.OLEDB.4.0;Data Source=" +
                "c:\\temp\\test1.mdb");

            DataSet thisDataSet = new DataSet();

            //Задание объекта DataAdapter для таблицы и ее наполнение
            OleDbDataAdapter testAdapter = new OleDbDataAdapter(
            "SELECT * FROM Table1", thisConnection);

            thisConnection.Open();

            //Заполение DataSet

            testAdapter.Fill(thisDataSet, "Table1");

            thisConnection.Close();

            Console.Write("Table1Column1Caption = {0}", 
                thisDataSet.Tables["Table1"].Columns["Column1"].Caption);
            Console.ReadLine();
        }
    }
}


Заранее всем огромное спасибо за ответы.
PM MAIL   Вверх
Idsa
Дата 27.6.2008, 10:11 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
****


Профиль
Группа: Участник
Сообщений: 2086
Регистрация: 5.12.2006
Где: Томск

Репутация: 15
Всего: 62



Я из описания не понял, в чем проблема.

Это сообщение отредактировал(а) Idsa - 27.6.2008, 10:12


--------------------
Мой блог: alexidsa.blogspot.com
PM MAIL ICQ   Вверх
Magnifico
Дата 27.6.2008, 11:11 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 418
Регистрация: 23.1.2008
Где: Московская област ь

Репутация: 2
Всего: 17



если схему бд считать

Код

con = new OleDbConnection(@"Provider=Microsoft.Jet.OLEDB.4.0;Data Source=.\base.mdb;User Id=admin;Password=;");
con.Open();
OleDbCommand cmd = new OleDbCommand("select * from Table", con);
       OleDbDataReader rdr = cmd.ExecuteReader();
       DataTable schema = new DataTable();
       while (rdr.Read())
                {
                   schema =rdr.GetSchemaTable();
                }
        dataGridView1.DataSource = schema; 



--------------------
Всё  в  порядке   -   спасибо  зарядке  !
PM MAIL   Вверх
sharp2005
Дата 27.6.2008, 11:46 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



Профиль
Группа: Участник
Сообщений: 26
Регистрация: 6.8.2007

Репутация: нет
Всего: 1



Цитата(Magnifico @ 27.6.2008,  11:11)
если схему бд считать

Caption там нету.

В MS Access, это называется Подпись
PM MAIL   Вверх
sharp2005
Дата 1.7.2008, 14:27 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



Профиль
Группа: Участник
Сообщений: 26
Регистрация: 6.8.2007

Репутация: нет
Всего: 1



так это выглядит в MS Access:


Присоединённый файл ( Кол-во скачиваний: 14 )
Присоединённый файл  caption.JPG 52,36 Kb
PM MAIL   Вверх
Idsa
Дата 1.7.2008, 17:01 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
****


Профиль
Группа: Участник
Сообщений: 2086
Регистрация: 5.12.2006
Где: Томск

Репутация: 15
Всего: 62



sharp2005, как-то витиевато выражаетесь... Может, Вам mapping подойдет? Вот здесь хорошо написано. Обратите внимание на ColumnMapping.


--------------------
Мой блог: alexidsa.blogspot.com
PM MAIL ICQ   Вверх
Magnifico
Дата 1.7.2008, 18:39 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 418
Регистрация: 23.1.2008
Где: Московская област ь

Репутация: 2
Всего: 17



мне кажется такие поля можно получить только через OLE automation а не через ADO.NET


--------------------
Всё  в  порядке   -   спасибо  зарядке  !
PM MAIL   Вверх
Idsa
Дата 1.7.2008, 18:54 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
****


Профиль
Группа: Участник
Сообщений: 2086
Регистрация: 5.12.2006
Где: Томск

Репутация: 15
Всего: 62



Только сейчас понял, что же все-таки требуется smile
Да, пожалуй, через Sql-запросы такой информации не заполучить. Хотя, может, в Access есть настройка, которая бы заменяла в запросах на выборку названия столбцов их Caption'ами. Хотя сомневаюсь...
Если масштабы программы небольшие, то можно обойтись Mapping'ом.


--------------------
Мой блог: alexidsa.blogspot.com
PM MAIL ICQ   Вверх
sharp2005
Дата 2.7.2008, 09:41 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



Профиль
Группа: Участник
Сообщений: 26
Регистрация: 6.8.2007

Репутация: нет
Всего: 1



Цитата

sharp2005, как-то витиевато выражаетесь... Может, Вам mapping подойдет? Вот здесь хорошо написано. Обратите внимание на ColumnMapping.

Как я понял, caption здесь прописывается в коде, а мне нужно забирать его из базы, поскольку он там уже прописан в соответствующем свойстве.
Цитата

мне кажется такие поля можно получить только через OLE automation а не через ADO.NET

 smile 
PM MAIL   Вверх
Akina
Дата 2.7.2008, 10:36 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Советчик
****


Профиль
Группа: Модератор
Сообщений: 20581
Регистрация: 8.4.2004
Где: Зеленоград

Репутация: нет
Всего: 454



Цитата(Idsa @  1.7.2008,  19:54 Найти цитируемый пост)
может, в Access есть настройка, которая бы заменяла в запросах на выборку названия столбцов их Caption'ами. Хотя сомневаюсь...

Правильно сомневаетесь. К Caption можно пробиться только через соотв. TableDef - у Аксесса они имеет соотв. tableDef.Property("Caption")


--------------------
 О(б)суждение моих действий - в соответствующей теме, пожалуйста. Или в РМ. И высшая инстанция - Администрация форума.

PM MAIL WWW ICQ Jabber   Вверх
sharp2005
Дата 3.7.2008, 13:41 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



Профиль
Группа: Участник
Сообщений: 26
Регистрация: 6.8.2007

Репутация: нет
Всего: 1



Цитата(Akina @ 2.7.2008,  10:36)
Правильно сомневаетесь. К Caption можно пробиться только через соотв. TableDef - у Аксесса они имеет соотв. tableDef.Property("Caption")

 smile 
PM MAIL   Вверх
sharp2005
Дата 15.7.2008, 10:36 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



Профиль
Группа: Участник
Сообщений: 26
Регистрация: 6.8.2007

Репутация: нет
Всего: 1



Так у меня ничего не получилось. Пришлось создать отдельную таблицу с именами столбцов и caption-ами.
PM MAIL   Вверх
  
Ответ в темуСоздание новой темы Создание опроса
Прежде чем создать тему, посмотрите сюда:
stab
mr.DUDA
Exception

Используйте теги [code=csharp][/code] для подсветки кода. Используйтe чекбокс "транслит" если у Вас нет русских шрифтов.

Если Вам понравилась атмосфера форума, заходите к нам чаще! С уважением, stab, mr.DUDA, Exception.

 
0 Пользователей читают эту тему (0 Гостей и 0 Скрытых Пользователей)
0 Пользователей:
« Предыдущая тема | Базы данных под .NET | Следующая тема »


 




[ Время генерации скрипта: 0.0526 ]   [ Использовано запросов: 22 ]   [ GZIP включён ]


Реклама на сайте     Информационное спонсорство

 
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности     Powered by Invision Power Board(R) 1.3 © 2003  IPS, Inc.