У меня есть следующие две таблицы данных:
Таблица [2]
+----+-----------+----------+
| id | FirstName | LastName |
+----+-----------+----------+
| 10 | Fred | Ramirez |
+----+-----------+----------+
| 20 | Willie | James |
+----+-----------+----------+
| 30 | Daniel | Green |
+----+-----------+----------+
| 40 | Matthew | Walker |
+----+-----------+----------+
| 50 | Aaron | Wright |
+----+-----------+----------+
| 60 | Richard | Huey |
+----+-----------+----------+
| 80 | Matthew | Walker |
+----+-----------+----------+
и
Таблица [3]
+----------+---------------+-----------------+------------------+-------------------+-----------------+-------------------+-------------------+
| Services | Fred ---10--- | Willie ---20--- | Daniel ---30--- | Matthew ---40--- | Aaron ---50--- | Richard ---60--- | Matthew ---80--- |
+----------+---------------+-----------------+------------------+-------------------+-----------------+-------------------+-------------------+
| XXX | 0 | 0 | 0 | 0 | 0 | 0 | 0 |
+----------+---------------+-----------------+------------------+-------------------+-----------------+-------------------+-------------------+
| AAA | 0 | 0 | 0 | 0 | 0 | 0 | 0 |
+----------+---------------+-----------------+------------------+-------------------+-----------------+-------------------+-------------------+
| CCC | 0 | 0 | 0 | 0 | 0 | 0 | 0 |
+----------+---------------+-----------------+------------------+-------------------+-----------------+-------------------+-------------------+
| DDD | 0 | 0 | 0 | 0 | 0 | 0 | 0 |
+----------+---------------+-----------------+------------------+-------------------+-----------------+-------------------+-------------------+
| YYY | 0 | 0 | 0 | 0 | 0 | 0 | 0 |
+----------+---------------+-----------------+------------------+-------------------+-----------------+-------------------+-------------------+
Мне нужно получить LastName
из Table[2]
и назначить имя столбца как FirstName + LastName
Мой код выглядит следующим образом:
int userID = 0;
string[] columnNameParts;
Result.GridViewDataTable = ds.Tables[3];
for (int currCol = 1; currCol < Result.GridViewDataTable.Columns.Count; currCol++)
{
columnNameParts = Result.GridViewDataTable.Columns[currCol].ColumnName.Split(new string[] { "---" }, StringSplitOptions.RemoveEmptyEntries);
userID = int.Parse(columnNameParts[columnNameParts.Length - 1]);
string columnName = ds.Tables[2].Select("Id = " + userID)[0]["FirstName"].ToString() + " " +
ds.Tables[2].Select("Id = " + userID)[0]["LastName"].ToString().Substring(0, 1);
Result.GridViewDataTable.Columns[currCol].ColumnName = columnName;
}
С данными двух приведенных выше таблиц я получаю следующую ошибку.
A column named 'Matthew W' already belongs to this DataTable
Это происходит из-за того, что Datatable имеет эту (Matthew | Walker
) запись два раза.
Как только я задаю имя столбца с помощью этого кода,
string columnName = ds.Tables[2].Select("Id = " + userID)[0]["FirstName"].ToString() + " " +
ds.Tables[2].Select("Id = " + userID)[0]["LastName"].ToString().Substring(0, 1);
Мне нужно проверить, Datatable уже состоит из этого имени столбца, и если оно уже существует, мне нужно установить 1
для завершения из LastName
. Если одно и то же имя столбца состоит из нескольких раз, мне нужно добавить 1,2,3 аналогично конец Фамилии Как пример (Matthew W,Matthew W1,Matthew W2
,) - как я могу это сделать?