ADO.Net доступ с значениям DataRow
От: sndanil Россия  
Дата: 18.05.04 06:05
Оценка:
Намедни, прочитал у товарища Сеппы, что самый быстрый доступ к значению поля в записи будет если использовать DataColumn. И соответственно вопрос, так ли это или есть другой более быстрый способ ?

Заранее спасибо.
Re: ADO.Net доступ с значениям DataRow
От: clon Россия  
Дата: 18.05.04 06:12
Оценка: 27 (1)
Здравствуйте, sndanil, Вы писали:

S>Намедни, прочитал у товарища Сеппы, что самый быстрый доступ к значению поля в записи будет если использовать DataColumn. И соответственно вопрос, так ли это или есть другой более быстрый способ ?

Правду говорит мужик, потому как для DataRow :


public object this[int value]
{
 get
{
 return this[this.Table.Columns[columnIndex]];
 
}
set
{
 this[this.Table.Columns[columnIndex]] = value;
 
}
 
}

public object this[string columnName]
{
 get
{
 DataColumn column1 = this.Table.Columns[columnName];
if (column1 == null)
{
 throw ExceptionBuilder.ColumnNotInTheTable(columnName, this.Table.TableName);
 
}
return this[column1];
 
}
set
{
 DataColumn column1 = this.Table.Columns[columnName];
if (column1 == null)
{
 throw ExceptionBuilder.ColumnNotInTheTable(columnName, this.Table.TableName);
 
}
this[column1] = value;
 
}
 
}
<< RSDN@Home 1.1.2 stable >>
Нельзя ничего сказать о глубине лужи, пока не попадешь в нее.
Re[2]: ADO.Net доступ с значениям DataRow
От: Ved Украина  
Дата: 18.05.04 08:10
Оценка:
Здравствуйте, clon, Вы писали:

C>Здравствуйте, sndanil, Вы писали:


S>>Намедни, прочитал у товарища Сеппы, что самый быстрый доступ к значению поля в записи будет если использовать DataColumn. И соответственно вопрос, так ли это или есть другой более быстрый способ ?

C>Правду говорит мужик, потому как для DataRow :
И в чем разница кода? После небольшого изменения кода (уберем проверку и т.п.) получаем:

C>

C>public object this[int value]
C>{
C> get
C>{
C> return this[this.Table.Columns[columnIndex]];
C> 
C>    ... пропускаем...
C> 
C>}

C>public object this[string columnName]
C>{
C> get
C>{
C>   return this[this.Table.Columns[columnName]];
C>}
C>    .... пропускаем....
C>}
... << RSDN@Home 1.0 beta 7 (MSSQL Edition) >>
Re[3]: ADO.Net доступ с значениям DataRow
От: V.Petrovski Беларусь  
Дата: 18.05.04 08:19
Оценка:
Здравствуйте, Ved, Вы писали:

Ved>И в чем разница кода? После небольшого изменения кода (уберем проверку и т.п.) получаем:


В том что все эти Индексеры сначало получают DataColumn из коллекции Table.Columns, И по полученному DataColumn
возвращают значение. Короче все индексеры в конечном итоге идут вот сюда
public object this[DataColumn column, DataRowVersion version]
{
    get
    {
        this.CheckColumn(column);
        return column[this.GetRecordFromVersion(version];
    }
}


Так что самый быстрый доступ к значению, это напрямую использовать этот Индексер.
... << RSDN@Home 1.1.3 stable Ночные Снайперы — Зву — чи!>> <no any citation>
Re[4]: ADO.Net доступ с значениям DataRow
От: Ved Украина  
Дата: 18.05.04 08:33
Оценка:
Здравствуйте, V.Petrovski, Вы писали:

VP>Здравствуйте, Ved, Вы писали:


Ved>>И в чем разница кода? После небольшого изменения кода (уберем проверку и т.п.) получаем:


VP>В том что все эти Индексеры сначало получают DataColumn из коллекции Table.Columns, И по полученному DataColumn

VP>возвращают значение. Короче все индексеры в конечном итоге идут вот сюда
VP>
VP>public object this[DataColumn column, DataRowVersion version]
VP>


VP>Так что самый быстрый доступ к значению, это напрямую использовать этот Индексер.

Это понятно. Так и используется везде. Просто я не понял, к чему был приведен код — то ли как сравнение, то ли как просто пример. А какой более медленный способ?
... << RSDN@Home 1.0 beta 7 (MSSQL Edition) >>
Re[5]: ADO.Net доступ с значениям DataRow
От: V.Petrovski Беларусь  
Дата: 18.05.04 08:43
Оценка:
Здравствуйте, Ved, Вы писали:

Ved>А какой более медленный способ?

Как всегда, какой найболее универсальный, тот и медленный

Я думаю получение значение колонки по её имени.
... << RSDN@Home 1.1.3 stable Ночные Снайперы — Д.р.>> <no any citation>
 
Подождите ...
Wait...
Пока на собственное сообщение не было ответов, его можно удалить.