Получить строку с таблицы C#

LiMe

Client
Регистрация
10.12.2015
Сообщения
595
Благодарностей
316
Баллы
63
Подскажите пожалуйста, есть несколько таблиц, у них одни и те же поля, но в каждой таблице они в разном порядке, я определяю в каком столбце нужные мне данные, но к сожалению такая конструкция не сработало. Подскажите пожалуйста, как можно ли взять строку с помощью C# и передавать столбец из переменной с которого нужно получить данные, и после взятия удалить строку?
Буду очень благодарен.
112826
 

BAZAg

Client
Регистрация
08.11.2015
Сообщения
1 764
Благодарностей
2 407
Баллы
113
C#:
var tb = project.Tables["tb"]; // Табличка с данными
int cell_position = int.Parse(project.Variables["cell"].Value); // Номер ячейки начиная с 0
int row = 0; // int.Parse(project.Variables["row"].Value); // Номер строки начиная с 0

string data = string.Empty;
lock(SyncObjects.TableSyncer){ // Блокируем табличку чтобы другой поток не изменил её пока мы с ней работаем
    if(tb.RowCount > row ) { // смотрим есть ли достаточно столбцов для взятия
        string[] cell = tb.GetRow(row).ToArray();       
        data = cell.Length > cell_position ? cell[cell_position] : ""; // Берем данные с нужной ячейки
        tb.DeleteRow(row); // Удаляем строку
    }
}
return data; // Возвращаем полученные данные либо пусто, если ячейка не была найдена
 
  • Спасибо
Реакции: LiMe

LiMe

Client
Регистрация
10.12.2015
Сообщения
595
Благодарностей
316
Баллы
63
C#:
var tb = project.Tables["tb"]; // Табличка с данными
int cell_position = int.Parse(project.Variables["cell"].Value); // Номер ячейки начиная с 0
int row = 0; // int.Parse(project.Variables["row"].Value); // Номер строки начиная с 0

string data = string.Empty;
lock(SyncObjects.TableSyncer){ // Блокируем табличку чтобы другой поток не изменил её пока мы с ней работаем
    if(tb.RowCount > row ) { // смотрим есть ли достаточно столбцов для взятия
        string[] cell = tb.GetRow(row).ToArray();     
        data = cell.Length > cell_position ? cell[cell_position] : ""; // Берем данные с нужной ячейки
        tb.DeleteRow(row); // Удаляем строку
    }
}
return data; // Возвращаем полученные данные либо пусто, если ячейка не была найдена
Извините за наглость, но немного не то, мне надо получить данные с столбца А (она статичная), и с ячейки которая указанная в переменной row (в ней лежит буквенное значение столбца в котором лежит значение), я попробовал переделать ваш код, но у меня не вышло, так как не знаю C#. Если вам будет не сложно, не могли бы вы подправить код под задачу. Заранее благодарен.
 

BAZAg

Client
Регистрация
08.11.2015
Сообщения
1 764
Благодарностей
2 407
Баллы
113
Извините за наглость, но немного не то, мне надо получить данные с столбца А (она статичная), и с ячейки которая указанная в переменной row (в ней лежит буквенное значение столбца в котором лежит значение), я попробовал переделать ваш код, но у меня не вышло, так как не знаю C#. Если вам будет не сложно, не могли бы вы подправить код под задачу. Заранее благодарен.
Значит храните не буквенное значение, а числовое. А=0, B=1, C=2...
Как по буквам обращаться к таблице я не в курсе - может кто-то перепишет под буквенные обозначения.

C#:
var tb = project.Tables["tb"]; // Табличка с данными
int cell_position = int.Parse(project.Variables["cell"].Value); // Номер ячейки начиная с 0
int row = 0; // int.Parse(project.Variables["row"].Value); // Номер строки начиная с 0

string data = string.Empty;
lock(SyncObjects.TableSyncer){ // Блокируем табличку чтобы другой поток не изменил её пока мы с ней работаем
    if(tb.RowCount > row ) { // смотрим есть ли достаточно столбцов для взятия
        string[] cell = tb.GetRow(row).ToArray();  
        project.Variables["var"].Value = cell.Length > 0 ? cell[0] : ""; // Берем данные A=0 B=1...
        data = cell.Length > cell_position ? cell[cell_position] : ""; // Берем данные с нужной ячейки
        tb.DeleteRow(row); // Удаляем строку
    }
}
return data; // Возвращаем полученные данные либо пусто, если ячейка не была найдена
 
  • Спасибо
Реакции: LiMe

Кто просматривает тему: (Всего: 1, Пользователи: 0, Гости: 1)