本文整理汇总了C#中System.Data.Common.DbDataReader.GetValues方法的典型用法代码示例。如果您正苦于以下问题:C# DbDataReader.GetValues方法的具体用法?C# DbDataReader.GetValues怎么用?C# DbDataReader.GetValues使用的例子?那么恭喜您, 这里精选的方法代码示例或许可以为您提供帮助。您也可以进一步了解该方法所在类System.Data.Common.DbDataReader
的用法示例。
在下文中一共展示了DbDataReader.GetValues方法的8个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于系统推荐出更棒的C#代码示例。
示例1: CreateValueBuffer
public virtual ValueBuffer CreateValueBuffer(DbDataReader dataReader)
{
Debug.Assert(dataReader != null); // hot path
Debug.Assert(dataReader.FieldCount >= _indexMap.Count);
if (_indexMap.Count == 0)
{
return ValueBuffer.Empty;
}
var values = new object[dataReader.FieldCount];
dataReader.GetValues(values);
var remappedValues = new object[_indexMap.Count];
for (var i = 0; i < _indexMap.Count; i++)
{
remappedValues[i]
= ReferenceEquals(values[_indexMap[i]], DBNull.Value)
? null
: values[_indexMap[i]];
}
return new ValueBuffer(remappedValues);
}
示例2: Create
/// <summary>
/// This API supports the Entity Framework Core infrastructure and is not intended to be used
/// directly from your code. This API may change or be removed in future releases.
/// </summary>
public virtual ValueBuffer Create(DbDataReader dataReader)
{
Debug.Assert(dataReader != null); // hot path
var fieldCount = dataReader.FieldCount;
if (fieldCount == 0)
{
return ValueBuffer.Empty;
}
var values = new object[fieldCount];
dataReader.GetValues(values);
_processValuesAction?.Invoke(values);
for (var i = 0; i < fieldCount; i++)
{
if (ReferenceEquals(values[i], DBNull.Value))
{
values[i] = null;
}
}
return new ValueBuffer(values);
}
示例3: Map
public override object Map(DbDataReader dataReader, RowMapperContext context)
{
if (context.Instance == null)
{
context.Instance = context.PocoData.CreateObject(dataReader);
if (context.Instance == null)
throw new Exception(string.Format("Cannot create POCO '{0}'. It may have no parameterless constructor or be an interface or abstract class without a Mapper factory.", context.Type.FullName));
}
else
{
_mappingOntoExistingInstance = true;
}
object[] values = new object[dataReader.FieldCount];
dataReader.GetValues(values);
_mapPlan(dataReader, values, context.Instance);
var result = context.Instance as IOnLoaded;
if (result != null)
{
result.OnLoaded();
}
return context.Instance;
}
示例4: ConvertDataReaderToDataTable
public static DataTable ConvertDataReaderToDataTable(DbDataReader reader)
{
try
{
DataTable table = new DataTable();
int fieldCount = reader.FieldCount;
for (int fieldIndex = 0; fieldIndex < fieldCount; ++fieldIndex)
{
table.Columns.Add(reader.GetName(fieldIndex), reader.GetFieldType(fieldIndex));
}
table.BeginLoadData();
object[] rowValues = new object[fieldCount];
while (reader.Read())
{
reader.GetValues(rowValues);
table.LoadDataRow(rowValues, true);
}
reader.Close();
table.EndLoadData();
return table;
}
catch (Exception ex)
{
throw new Exception("DataReader转换为DataTable时出错!", ex);
}
}
示例5: CreateBuffer
private static object[] CreateBuffer(DbDataReader dataReader)
{
var values = new object[dataReader.FieldCount];
dataReader.GetValues(values);
for (var i = 0; i < values.Length; i++)
{
if (ReferenceEquals(values[i], DBNull.Value))
{
values[i] = null;
}
}
return values;
}
示例6: FillDataTableAsync
/// <summary>
/// 使用指定范围内的行异步填充 DataTable 并返回。
/// </summary>
/// <param name="dataReader">用来读取数据的 DataReader</param>
/// <param name="startRecord">要填充的起始记录位置</param>
/// <param name="maxRecords">最多填充的记录条数</param>
/// <returns>填充好的 DataTable</returns>
public async Task<DataTable> FillDataTableAsync( DbDataReader dataReader, int startRecord, int maxRecords )
{
var dataTable = new DataTable();
base.FillSchema( dataTable, SchemaType.Source, dataReader );
var array = new object[dataReader.FieldCount];
while ( await dataReader.ReadAsync() )
{
dataReader.GetValues( array );
dataTable.LoadDataRow( array, true );
}
return dataTable;
}
示例7: ExportExcelByTemplate
/// <summary>
/// 根据模板将datareaser数据导成过滤指定列的EXCEL格式
/// </summary>
/// <param name="dataReader">数据集</param>
/// <param name="strFilePath">模板文件路径</param>
/// <param name="intStartRow">起始行</param>
/// <param name="strFileFullPath">全路径</param>
/// <param name="arrFilterColumn">过滤指定列,列名(别名)列表</param>
public static void ExportExcelByTemplate(DbDataReader dataReader, string strFilePath, int intStartRow, string strFileFullPath, string[] arrFilterColumn)
{
Workbook excelTemplate = new Workbook();
Workbook excel = new Workbook();
//建立excel并打开模板文件
excelTemplate.Open(strFilePath);
int intSheetRowCount = 0;
int intSheetCount = 0;
excel.Worksheets[intSheetRowCount].Copy(excelTemplate.Worksheets[0]);
Cells cells = excel.Worksheets[intSheetCount].Cells;// sheet.Cells;
Object[] arrObj = new Object[dataReader.FieldCount];//
List<string> list = null;
if (arrFilterColumn != null)
{
list = new List<string>(arrFilterColumn);//过滤指定列,列名(别名)列表
}
while (dataReader.Read())
{
if (intSheetRowCount == IntPageSize)
{
excel.Worksheets.Add();
intSheetCount += 1;
excel.Worksheets[intSheetCount].Copy(excelTemplate.Worksheets[0]);
intSheetRowCount = 0;
cells = excel.Worksheets[intSheetCount].Cells;
}
if (arrFilterColumn != null)
{
ArrayList arrList = new ArrayList();
for (int i = 0; i < dataReader.FieldCount; i++)
{
if (!Array.Exists(list.ToArray(), p =>
{
return p.Equals(dataReader.GetName(i),
StringComparison.OrdinalIgnoreCase);
}))
{
arrList.Add(dataReader.GetValue((i)));
}
}
Object[] arrObjTmp = arrList.ToArray();
cells.ImportObjectArray(arrObjTmp, intStartRow + intSheetRowCount, 0, false);
}
else
{
dataReader.GetValues(arrObj);
cells.ImportObjectArray(arrObj, intStartRow + intSheetRowCount, 0, false);
}
intSheetRowCount += 1;
}
excel.Worksheets.Add();
excel.Save(strFileFullPath, SaveFormat.Auto);
}
示例8: readNext
//using querydata given
/// <summary>
/// reads the next row in the provided reader
/// </summary>
/// <param name="querysData"></param>
/// <returns>object[] of the row </returns>
public virtual object[] readNext(DbDataReader querysData)
{
object[] rowData = new object[querysData.FieldCount];
if (querysData.Read())
{
querysData.GetValues(rowData);
return rowData;
}
else
{
return null;
}
}