当前位置: 首页>>代码示例>>C#>>正文


C# DbDataReader.GetSchemaTable方法代码示例

本文整理汇总了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;
            }
        }
开发者ID:claq2,项目名称:Spurious,代码行数:56,代码来源:Subdivision.cs

示例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;
            }
        }
开发者ID:claq2,项目名称:Spurious,代码行数:55,代码来源:LcboStore.cs

示例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;
         });
 }
开发者ID:JasonJDong,项目名称:EasyMobileClient_EasyRestaurant,代码行数:36,代码来源:AutoAssignValueDataBase.cs

示例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;
        }
开发者ID:snowstormlife,项目名称:blizElasticScale,代码行数:13,代码来源:MultiShardQuerySample.cs

示例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();
        }
开发者ID:noqisofon,项目名称:Ixion,代码行数:35,代码来源:CsvWriter.cs

示例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);
 }
开发者ID:jmanuelcorral,项目名称:CursoBackend,代码行数:11,代码来源:ADONETDataMapper.cs

示例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;
        }
开发者ID:jerryshi2007,项目名称:AK47Source,代码行数:60,代码来源:DbTraceHelper.cs


注:本文中的System.Data.Common.DbDataReader.GetSchemaTable方法示例由纯净天空整理自Github/MSDocs等开源代码及文档管理平台,相关代码片段筛选自各路编程大神贡献的开源项目,源码版权归原作者所有,传播和使用请参考对应项目的License;未经允许,请勿转载。