//------------------------------------------------------------------------------
//
// Copyright (c) Microsoft Corporation. All rights reserved.
//
// Microsoft
// spather
//------------------------------------------------------------------------------
using System;
using System.Data.DataSetExtensions;
namespace System.Data {
///
/// This static class defines the DataRow extension methods.
///
public static class DataRowExtensions {
///
/// This method provides access to the values in each of the columns in a given row.
/// This method makes casts unnecessary when accessing columns.
/// Additionally, Field supports nullable types and maps automatically between DBNull and
/// Nullable when the generic type is nullable.
///
///
/// The input DataRow
///
///
/// The input column name specificy which row value to retrieve.
///
///
/// The DataRow value for the column specified.
///
public static T Field(this DataRow row, string columnName) {
DataSetUtil.CheckArgumentNull(row, "row");
return UnboxT.Unbox(row[columnName]);
}
///
/// This method provides access to the values in each of the columns in a given row.
/// This method makes casts unnecessary when accessing columns.
/// Additionally, Field supports nullable types and maps automatically between DBNull and
/// Nullable when the generic type is nullable.
///
///
/// The input DataRow
///
///
/// The input DataColumn specificy which row value to retrieve.
///
///
/// The DataRow value for the column specified.
///
public static T Field(this DataRow row, DataColumn column) {
DataSetUtil.CheckArgumentNull(row, "row");
return UnboxT.Unbox(row[column]);
}
///
/// This method provides access to the values in each of the columns in a given row.
/// This method makes casts unnecessary when accessing columns.
/// Additionally, Field supports nullable types and maps automatically between DBNull and
/// Nullable when the generic type is nullable.
///
///
/// The input DataRow
///
///
/// The input ordinal specificy which row value to retrieve.
///
///
/// The DataRow value for the column specified.
///
public static T Field(this DataRow row, int columnIndex) {
DataSetUtil.CheckArgumentNull(row, "row");
return UnboxT.Unbox(row[columnIndex]);
}
///
/// This method provides access to the values in each of the columns in a given row.
/// This method makes casts unnecessary when accessing columns.
/// Additionally, Field supports nullable types and maps automatically between DBNull and
/// Nullable when the generic type is nullable.
///
///
/// The input DataRow
///
///
/// The input ordinal specificy which row value to retrieve.
///
///
/// The DataRow version for which row value to retrieve.
///
///
/// The DataRow value for the column specified.
///
public static T Field(this DataRow row, int columnIndex, DataRowVersion version) {
DataSetUtil.CheckArgumentNull(row, "row");
return UnboxT.Unbox(row[columnIndex, version]);
}
///
/// This method provides access to the values in each of the columns in a given row.
/// This method makes casts unnecessary when accessing columns.
/// Additionally, Field supports nullable types and maps automatically between DBNull and
/// Nullable when the generic type is nullable.
///
///
/// The input DataRow
///
///
/// The input column name specificy which row value to retrieve.
///
///
/// The DataRow version for which row value to retrieve.
///
///
/// The DataRow value for the column specified.
///
public static T Field(this DataRow row, string columnName, DataRowVersion version) {
DataSetUtil.CheckArgumentNull(row, "row");
return UnboxT.Unbox(row[columnName, version]);
}
///
/// This method provides access to the values in each of the columns in a given row.
/// This method makes casts unnecessary when accessing columns.
/// Additionally, Field supports nullable types and maps automatically between DBNull and
/// Nullable when the generic type is nullable.
///
///
/// The input DataRow
///
///
/// The input DataColumn specificy which row value to retrieve.
///
///
/// The DataRow version for which row value to retrieve.
///
///
/// The DataRow value for the column specified.
///
public static T Field(this DataRow row, DataColumn column, DataRowVersion version) {
DataSetUtil.CheckArgumentNull(row, "row");
return UnboxT.Unbox(row[column, version]);
}
///
/// This method sets a new value for the specified column for the DataRow it’s called on.
///
///
/// The input DataRow.
///
///
/// The input ordinal specifying which row value to set.
///
///
/// The new row value for the specified column.
///
public static void SetField(this DataRow row, int columnIndex, T value) {
DataSetUtil.CheckArgumentNull(row, "row");
row[columnIndex] = (object)value ?? DBNull.Value;
}
///
/// This method sets a new value for the specified column for the DataRow it’s called on.
///
///
/// The input DataRow.
///
///
/// The input column name specificy which row value to retrieve.
///
///
/// The new row value for the specified column.
///
public static void SetField(this DataRow row, string columnName, T value) {
DataSetUtil.CheckArgumentNull(row, "row");
row[columnName] = (object)value ?? DBNull.Value;
}
///
/// This method sets a new value for the specified column for the DataRow it’s called on.
///
///
/// The input DataRow.
///
///
/// The input DataColumn specificy which row value to retrieve.
///
///
/// The new row value for the specified column.
///
public static void SetField(this DataRow row, DataColumn column, T value) {
DataSetUtil.CheckArgumentNull(row, "row");
row[column] = (object)value ?? DBNull.Value;
}
private static class UnboxT
{
internal static readonly Converter