То есть, если по простому, в базе данных у нас есть поле ID, но с помощью механизма сопоставления в источнике данных мы можем получить не поле ID, а поле Идентификатор. Аналогично и с именованием таблиц.
При локализации приложения данный механизм позволяет упростить отображение и работу с данными. Но стоит помнить, что после установления отображения обращаться к полям в источнике данных нужно по установленным в отображении именам. В частности, можно очень удобно, к примеру, в DataGridView изменять имена столбцов в зависимости от выбранного языка приложения.
Пример:
// настраиваем DataAdapter
da = new SqlCeDataAdapter();
da.SelectCommand = Constants.connection.CreateCommand();
da.SelectCommand.CommandText = "select * from DataTable where id=@id ";
da.InsertCommand = Constants.connection.CreateCommand();
da.InsertCommand.CommandText = "insert into DataTable (id, user, Dates) values (@id, @user, @Date)";
da.UpdateCommand = Constants.connection.CreateCommand();
da.UpdateCommand.CommandText = "update DataTable set user=@user, Date=@Date where id=@id";
da.DeleteCommand = Constants.connection.CreateCommand();
da.DeleteCommand.CommandText = "delete from Readings where id=@id";
ds = new DataSet();
// описываем сопоставление
DataColumnMapping[] dcm = {
new DataColumnMapping("user", Langs.Resource.user_text), // имя в БД – имя в источнике
new DataColumnMapping("Date", Langs.Resource.date_text) // имя в БД – имя в источнике
};
// Langs.Resource.user_text – берется из ресурсов проекта, соответствующей локали приложения.
DataTableMapping dtm = new DataTableMapping("DataTable", "Таблица", dcm);
da.TableMappings.Clear();
da.TableMappings.Add(dtm);
da.Fill(ds, "Таблица");
dataGridView.DataSource = ds;
dataGridView.DataMember = "Таблица";
dr.BeginEdit();
dr["id"] = “116”; // имя столбца не изменялось
dr[Langs.Resource.user_text] =” Имя пользователя”; // используется сопоставленное имя столбца
dr[Langs.Resource.date_text] =DateTime.Now;
dr.EndEdit();
da.Update(ds, "Таблица"); Применяем изменения в DataSet. Изменения в БД не заносятся! Используется сопоставленное имя таблицы.
ds.AcceptChanges(); // заносим изменения в базу данных

Использование сопоставления (TableMapping)
