private void ParameterOutput(IDataParameter parameter, DataRow row, DataTableMapping mappings, MissingMappingAction missingMapping, MissingSchemaAction missingSchema)
{
if (0 != (ParameterDirection.Output & parameter.Direction))
{
object value = parameter.Value;
if (null != value)
{
// null means default, meaning we leave the current DataRow value alone
string columnName = parameter.SourceColumn;
if (!string.IsNullOrEmpty(columnName))
{
DataColumn dataColumn = mappings.GetDataColumn(columnName, null, row.Table, missingMapping, missingSchema);
if (null != dataColumn)
{
if (dataColumn.ReadOnly)
{
try
{
dataColumn.ReadOnly = false;
row[dataColumn] = value;
}
finally
{
dataColumn.ReadOnly = true;
}
}
else
{
row[dataColumn] = value;
}
}
}
}
}
}