本文整理汇总了C#中System.Data.Common.DbDataReader.GetSchemaTable方法的典型用法代码示例。如果您正苦于以下问题:C# DbDataReader.GetSchemaTable方法的具体用法?C# DbDataReader.GetSchemaTable怎么用?C# DbDataReader.GetSchemaTable使用的例子?那么恭喜您, 这里精选的方法代码示例或许可以为您提供帮助。您也可以进一步了解该方法所在类System.Data.Common.DbDataReader
的用法示例。
在下文中一共展示了DbDataReader.GetSchemaTable方法的7个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于系统推荐出更棒的C#代码示例。
示例1: Subdivision
public Subdivision(DbDataReader reader)
: this()
{
this.Id = Convert.ToInt32(reader["id"]);
var columnNames = reader.GetSchemaTable().Rows.OfType<DataRow>().Select(r => (string)r["ColumnName"]);
if (columnNames.Contains("population") && reader["population"] != DBNull.Value)
{
this.Population = Convert.ToInt32(reader["population"]);
}
if (columnNames.Contains("beer_volume") && reader["beer_volume"] != DBNull.Value)
{
this.Volumes.Beer = Convert.ToInt64(reader["beer_volume"]);
}
if (columnNames.Contains("wine_volume") && reader["wine_volume"] != DBNull.Value)
{
this.Volumes.Wine = Convert.ToInt64(reader["wine_volume"]);
}
if (columnNames.Contains("spirits_volume") && reader["spirits_volume"] != DBNull.Value)
{
this.Volumes.Spirits = Convert.ToInt64(reader["spirits_volume"]);
}
if (columnNames.Contains("boundary") && reader["boundary"] != DBNull.Value)
{
var boundary = reader["boundary"] as string;
var featureWrapper =
[email protected]"{{ ""type"": ""FeatureCollection"",
""features"": [
{{ ""type"": ""Feature"",
""geometry"": {boundary},
""properties"":{{}}
}}
]
}}";
var featurecoll = JsonConvert.DeserializeObject(boundary);
this.GeoJSON = featureWrapper;
}
if (columnNames.Contains("name") && reader["name"] != DBNull.Value)
{
this.Name = reader["name"] as string;
}
if (columnNames.Contains("centre") && reader["centre"] != DBNull.Value)
{
this.GeoJsonCentre = reader["centre"] as string;
var geocentre = JsonConvert.DeserializeObject<Point>(this.GeoJsonCentre);
this.CentreLatitude = ((GeographicPosition)geocentre.Coordinates).Latitude;
this.CentreLongitude = ((GeographicPosition)geocentre.Coordinates).Longitude;
}
}
示例2: LcboStore
public LcboStore(DbDataReader reader)
: this()
{
this.Id = Convert.ToInt32(reader["id"]);
var columnNames = reader.GetSchemaTable().Rows.OfType<DataRow>().Select(r => (string)r["ColumnName"]);
if (columnNames.Contains("name") && reader["name"] != DBNull.Value)
{
this.Name = reader["name"] as string;
}
if (columnNames.Contains("beer_volume") && reader["beer_volume"] != DBNull.Value)
{
this.Volumes.Beer = Convert.ToInt32(reader["beer_volume"]);
}
if (columnNames.Contains("wine_volume") && reader["wine_volume"] != DBNull.Value)
{
this.Volumes.Wine = Convert.ToInt32(reader["wine_volume"]);
}
if (columnNames.Contains("spirits_volume") && reader["spirits_volume"] != DBNull.Value)
{
this.Volumes.Spirits = Convert.ToInt32(reader["spirits_volume"]);
}
if (columnNames.Contains("city") && reader["city"] != DBNull.Value)
{
this.City = reader["city"] as string;
}
if (columnNames.Contains("subdivision_id") && reader["subdivision_id"] != DBNull.Value)
{
this.SubdivisionId = Convert.ToInt32(reader["subdivision_id"]);
}
if (columnNames.Contains("location") && reader["location"] != DBNull.Value)
{
var location = reader["location"] as string;
var geojsonlocation = JsonConvert.DeserializeObject<Point>(location);
var properties = new Dictionary<string, object>
{
{ "name", this.Name },
{ "city", this.City },
{ "beerVolume", this.Volumes.Beer },
{ "wineVolume", this.Volumes.Wine },
{ "spiritsVolume", this.Volumes.Spirits },
{ "totalVolume", this.Volumes.Total },
};
var feature = new Feature(geojsonlocation, properties);
this.GeoJSON = feature;
}
}
示例3: Build
public void Build(DbDataReader reader)
{
var tableSchema = reader.GetSchemaTable();
if (tableSchema == null)
{
return;
}
FetchTableColumnsName(tableSchema);
//reader.Read();
BuildHandle((colName, property) =>
{
var propertyType = property.PropertyType;
var exists = CurrentTableSchemaColumnsName.Find(s => String.Equals(s, colName, StringComparison.InvariantCultureIgnoreCase));
if (String.IsNullOrWhiteSpace(exists))
{
return false;
}
var index = reader.GetOrdinal(exists);
try
{
if (reader.IsDBNull(index))
{
return false;
}
var value = ChangeType(reader.GetValue(index), propertyType);
property.SetValue(this, value, null);
}
catch (Exception ex)
{
Error.ErrorCode = ErrorMapping.BUSINESS_FFFF;
Error.SimpleErrorDescription = ex.Message;
return false;
}
return true;
});
}
示例4: GetColumnNames
/// <summary>
/// Gets the column names from a data reader.
/// </summary>
private static IEnumerable<string> GetColumnNames(DbDataReader reader)
{
List<string> columnNames = new List<string>();
foreach (DataRow r in reader.GetSchemaTable().Rows)
{
columnNames.Add(r[SchemaTableColumn.ColumnName].ToString());
}
return columnNames;
}
示例5: Write
/// <summary>
///
/// </summary>
/// <param name="reader"></param>
/// <param name="header"></param>
public void Write(DbDataReader reader, string[] header)
{
if ( reader == null )
throw new ArgumentNullException( "reader" );
ShouldBeDisposed();
if ( header == null )
Write( reader );
DataTable schema = reader.GetSchemaTable();
/*
* ヘッダーを書き出します。
*/
foreach ( string field in header ) {
this.Write( field );
}
this.WriteLine();
if ( reader.HasRows ) {
while ( reader.Read() ) {
for ( int i = 0; i < reader.FieldCount; ++i ) {
Type datatype = schema.Rows[i]["DataType"] as Type;
this.Write( reader[i], datatype );
}
this.WriteLine();
}
}
this.Flush();
}
示例6: ColumnExists
/// <summary>
/// Check if an DbDataReader contains a field
/// </summary>
/// <param name="reader">The reader</param>
/// <param name="columnName">The column name</param>
/// <returns></returns>
public static bool ColumnExists(DbDataReader reader, string columnName)
{
reader.GetSchemaTable().DefaultView.RowFilter = "ColumnName= '" + columnName + "'";
return (reader.GetSchemaTable().DefaultView.Count > 0);
}
示例7: ConvertDataReaderToDataSet
/// <summary>
/// 由于DataSet得灵活性,提供了一个将DataReader转换为DataSet的工具方法
/// </summary>
/// <param name="reader">DbDataReader对象</param>
/// <returns>DataSet</returns>
public static DataSet ConvertDataReaderToDataSet(DbDataReader reader)
{
ExceptionHelper.TrueThrow<ArgumentNullException>(reader == null, "reader");
DataSet dataSet = new DataSet();
dataSet.Locale = System.Globalization.CultureInfo.InvariantCulture;
do
{
DataTable schemaTable = reader.GetSchemaTable();
DataTable dataTable = new DataTable();
if (schemaTable != null)
{
// A query returning records was executed
for (int i = 0; i < schemaTable.Rows.Count; i++)
{
DataRow dataRow = schemaTable.Rows[i];
// Create a column name that is unique in the data table
string columnName = (string)dataRow["ColumnName"]; //+ "<C" + i + "/>";
// Add the column definition to the data table
DataColumn column = new DataColumn(columnName, (Type)dataRow["DataType"]);
dataTable.Columns.Add(column);
}
dataSet.Tables.Add(dataTable);
// Fill the data table we just created
//try
//{
while (reader.Read())
{
DataRow dataRow = dataTable.NewRow();
for (int i = 0; i < reader.FieldCount; i++)
dataRow[i] = reader.GetValue(i);
dataTable.Rows.Add(dataRow);
}
//}
//catch(Exception exception)
//{
// TraceException(exception);
//}
}
else
{
// No records were returned
DataColumn column = new DataColumn("RowsAffected");
dataTable.Columns.Add(column);
dataSet.Tables.Add(dataTable);
DataRow dataRow = dataTable.NewRow();
dataRow[0] = reader.RecordsAffected;
dataTable.Rows.Add(dataRow);
}
}
while (reader.NextResult());
return dataSet;
}