powered by simpleCommunicator - 2.0.56     © 2025 Programmizd 02
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Форумы / WinForms, .Net Framework [игнор отключен] [закрыт для гостей] / Свойство MySqlDataAdapter.TableMapppings и разные имена таблиц (в БД и DataSet)
2 сообщений из 2, страница 1 из 1
Свойство MySqlDataAdapter.TableMapppings и разные имена таблиц (в БД и DataSet)
    #38313080
|\/|AX
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Всем доброго времени суток. Никто не сталкивался с такой проблемой?
Заполняю свойство TableMappings в MySqlDataAdapter следующим кодом:
Код: c#
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
Dictionary<string, MySqlDataAdapter> Adapters = new Dictionary<string, MySqlDataAdapter>();
/// ....
Properties.DatabaseSettings conf = Properties.DatabaseSettings.GetSection(ConfigurationUserLevel.None);
foreach (Properties.TableElement te in conf.Tables) {
MySqlDataAdapter adapter = new MySqlDataAdapter(te.Sql, this.ConnectionString);
DataTableMapping tm = new DataTableMapping(te.Name, te.DataSetName); // te.Name = "permits"; te.DataSetName = "Пропуска"

foreach (Properties.ColumnMappingElement cme in te.ColumnMappings) {
   tm.ColumnMappings.Add(cme.DatabaseName, cme.DataSetName);
}
adapter.TableMappings.Add(tm);
this.Adapters.Add(te.Name, adapter);
// ...



Конфиг следующего содержания:
Код: xml
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
16.
17.
18.
19.
20.
21.
<Tables>
<Table name="permits" dsname="Пропуска" sql="select * from permits">
   <ColumnMappings>
      <ColumnMapping dbname="id" dsname="Ид" />
      <ColumnMapping dbname="year" dsname="Год" />
      <ColumnMapping dbname="num" dsname="Номер пропуска" />
      <ColumnMapping dbname="renter_id" dsname="Ид заявителя" />
      <ColumnMapping dbname="salon_id" dsname="Ид салона" />
      <ColumnMapping dbname="supplier_id" dsname="Ид пользователя" />
      <ColumnMapping dbname="salon2_id" dsname="Ид салона (Пользователь)" />
      <ColumnMapping dbname="person_id" dsname="Ид ответственного" />
      <ColumnMapping dbname="car_id" dsname="Ид машины" />
      <ColumnMapping dbname="type" dsname="Тип" />
      <ColumnMapping dbname="request" dsname="Запрос" />
      <ColumnMapping dbname="create_date" dsname="Дата создания" />
      <ColumnMapping dbname="from_date" dsname="Дата начала действия" />
      <ColumnMapping dbname="to_date" dsname="Дата окончания действия" />
      <ColumnMapping dbname="locked" dsname="Блокировка" />
   </ColumnMappings>
</Table>
</Tables>



Если таблица в DataSet зовется "Пропуска", то отображение русских имен на колонки в DataTable не срабатывает. все берется из базы. Если подправить строчку:
Код: c#
1.
2.
3.
//...
DataTableMapping tm = new DataTableMapping(te.Name, te.Name);
//...


То все работает. В общем-то, не принципиально, можно пережить, но должно же так работать или я ошибаюсь? В чем может быть проблема?

Заполняется DataSet стандартно:
Код: c#
1.
2.
3.
4.
// Рабочий вариант
this.Adapters[te.Name].Fill(this.ParkingDataSet, te.Name); // te.Name = "permits"
// Нерабочий вариант
this.Adapters[te.Name].Fill(this.ParkingDataSet, te.DataSetName); // te.DataSetName = "Пропуска"
...
Рейтинг: 0 / 0
Свойство MySqlDataAdapter.TableMapppings и разные имена таблиц (в БД и DataSet)
    #38313136
|\/|AX
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Версия MySql Connector .NET 6.6.5.0
...
Рейтинг: 0 / 0
2 сообщений из 2, страница 1 из 1
Форумы / WinForms, .Net Framework [игнор отключен] [закрыт для гостей] / Свойство MySqlDataAdapter.TableMapppings и разные имена таблиц (в БД и DataSet)
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


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