本文整理汇总了C#中IProvider.Close方法的典型用法代码示例。如果您正苦于以下问题:C# IProvider.Close方法的具体用法?C# IProvider.Close怎么用?C# IProvider.Close使用的例子?那么恭喜您, 这里精选的方法代码示例或许可以为您提供帮助。您也可以进一步了解该方法所在类IProvider
的用法示例。
在下文中一共展示了IProvider.Close方法的7个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于系统推荐出更棒的C#代码示例。
示例1: BuildFromProvider
/// <summary>
/// Builds from the given provider.
/// </summary>
/// <param name="provider">
/// The base <see cref="SharpMap.Data.Providers.IProvider"/>
/// from witch initialize the <see cref="NtsProvider"/> instance.
/// </param>
private void BuildFromProvider(IProvider provider)
{
// Features list initialization
_features = new List<Feature>(provider.GetFeatureCount());
try
{
// Load all features from the given provider
provider.Open();
var ids = provider.GetOidsInView(provider.GetExtents());
foreach (var id in ids)
{
var dataRow = provider.GetFeatureByOid(id);
var geometry = dataRow.Geometry;
AttributesTable attributes = new AttributesTable();
var att = dataRow.Attributes;
foreach (var column in dataRow.Factory.AttributesDefinition)
{
var attName = column.AttributeName;
if (att[attName] == null || att[attName] is DBNull)
throw new ApplicationException("Null values not supported");
attributes.AddAttribute(attName, att[column.AttributeName]);
}
_features.Add(new Feature(geometry, attributes));
}
}
finally
{
if (provider.IsOpen)
provider.Close();
}
}
示例2: BuildFromProvider
/// <summary>
/// Builds from the given provider.
/// </summary>
/// <param name="provider">
/// The base <see cref="SharpMap.Data.Providers.IProvider"/>
/// from witch initialize the <see cref="NtsProvider"/> instance.
/// </param>
private void BuildFromProvider(IProvider provider)
{
// Features list initialization
features = new List<Feature>(provider.GetFeatureCount());
try
{
// Load all features from the given provider
provider.Open();
Collection<uint> ids = provider.GetObjectIDsInView(provider.GetExtents());
foreach (uint id in ids)
{
FeatureDataRow dataRow = provider.GetFeature(id);
GisSharpBlog.NetTopologySuite.Geometries.Geometry geometry =
GeometryConverter.ToNTSGeometry(dataRow.Geometry, geometryFactory);
AttributesTable attributes = new AttributesTable();
foreach (DataColumn column in dataRow.Table.Columns)
{
if (dataRow[column] == null || dataRow[column].GetType() == typeof (DBNull))
throw new ApplicationException("Null values not supported");
attributes.AddAttribute(column.ColumnName, dataRow[column]);
}
features.Add(new Feature(geometry, attributes));
}
}
finally
{
if (provider.IsOpen)
provider.Close();
}
}
示例3: CreateDataTable
//.........这里部分代码省略.........
int counter = -1;
using (SQLiteConnection conn = new SQLiteConnection(connstr))
{
SQLiteCommand command = new SQLiteCommand();
command.Connection = conn;
conn.Open();
//Try to drop table if it exists
try
{
command.CommandText = "DROP TABLE \"" + tablename + "\";";
command.ExecuteNonQuery();
}
catch
{
}
//Create new table for storing the datasource
string sql = "CREATE TABLE " + tablename + " (fid INTEGER PRIMARY KEY, geom TEXT, " +
"minx REAL, miny REAL, maxx REAL, maxy REAL, oid INTEGER";
foreach (DataColumn col in columns)
if (col.DataType != typeof (String))
sql += ", " + col.ColumnName + " " + Type2SqlLiteTypeString(col.DataType);
else
sql += ", " + col.ColumnName + " TEXT";
command.CommandText = sql + ");";
//command.CommandText = sql;
command.ExecuteNonQuery();
counter++;
Collection<uint> indexes = datasource.GetObjectIDsInView(datasource.GetExtents());
//Select all indexes in shapefile, loop through each feature and insert them one-by-one
foreach (uint idx in indexes)
{
//Get feature from shapefile
FeatureDataRow feature = datasource.GetFeature(idx);
if (counter == 0)
{
//Create insert script
string strSQL = " (";
foreach (DataColumn col in feature.Table.Columns)
strSQL += "@" + col.ColumnName + ",";
strSQL += "@geom,@minx,@miny, " +
"@maxx,@maxy)";
strSQL = "INSERT INTO " + tablename + strSQL.Replace("@", "") + " VALUES" + strSQL;
command.CommandText = strSQL;
command.Parameters.Clear();
//Add datacolumn parameters
foreach (DataColumn col in feature.Table.Columns)
command.Parameters.Add("@" + col.ColumnName, Type2SqlType(col.DataType));
//Add geometry parameters
//command.Parameters.Add("@geom", DbType.Binary);
command.Parameters.Add("@minx", DbType.Double);
command.Parameters.Add("@miny", DbType.Double);
command.Parameters.Add("@maxx", DbType.Double);
command.Parameters.Add("@maxy", DbType.Double);
}
//Set values
foreach (DataColumn col in feature.Table.Columns)
command.Parameters["@" + col.ColumnName].Value = feature[col];
if (feature.Geometry != null)
{
Console.WriteLine(feature.Geometry.AsBinary().Length.ToString());
command.Parameters.AddWithValue("@geom", feature.Geometry.AsText()); //.AsBinary());
//command.Parameters["@geom"].Value = "X'" + ToHexString(feature.Geometry.AsBinary()) + "'"; //Add the geometry as Well-Known Binary
BoundingBox box = feature.Geometry.GetBoundingBox();
command.Parameters["@minx"].Value = box.Left;
command.Parameters["@miny"].Value = box.Bottom;
command.Parameters["@maxx"].Value = box.Right;
command.Parameters["@maxy"].Value = box.Top;
}
else
{
command.Parameters["@geom"].Value = DBNull.Value;
command.Parameters["@minx"].Value = DBNull.Value;
command.Parameters["@miny"].Value = DBNull.Value;
command.Parameters["@maxx"].Value = DBNull.Value;
command.Parameters["@maxy"].Value = DBNull.Value;
}
//Insert row
command.ExecuteNonQuery();
counter++;
}
//Create indexes
//command.Parameters.Clear();
//command.CommandText = "CREATE INDEX [IDX_Envelope_MinX] ON " + tablename + " (Envelope_MinX)";
//command.ExecuteNonQuery();
//command.CommandText = "CREATE INDEX [IDX_Envelope_MinY] ON " + tablename + " (Envelope_MinY)";
//command.ExecuteNonQuery();
//command.CommandText = "CREATE INDEX [IDX_Envelope_MaxX] ON " + tablename + " (Envelope_MaxX)";
//command.ExecuteNonQuery();
//command.CommandText = "CREATE INDEX [IDX_Envelope_MaxY] ON " + tablename + " (Envelope_MaxY)";
//command.ExecuteNonQuery();
conn.Close();
}
datasource.Close();
return counter;
}
示例4: CreateDataTable
//.........这里部分代码省略.........
FeatureDataRow geom = datasource.GetFeature(0);
DataColumnCollection columns = geom.Table.Columns;
int counter = -1;
using (SqlConnection conn = new SqlConnection(connstr))
{
SqlCommand command = new SqlCommand();
command.Connection = conn;
conn.Open();
//Try to drop table if it exists
try
{
command.CommandText = "DROP TABLE \"" + tablename + "\";";
command.ExecuteNonQuery();
}
catch
{
}
//Create new table for storing the datasource
string sql = "CREATE TABLE " + tablename + " (oid INTEGER IDENTITY PRIMARY KEY, WKB_Geometry Image, " +
"Envelope_MinX real, Envelope_MinY real, Envelope_MaxX real, Envelope_MaxY real";
foreach (DataColumn col in columns)
if (col.DataType != typeof (String))
sql += ", " + col.ColumnName + " " + Type2SqlType(col.DataType).ToString();
else
sql += ", " + col.ColumnName + " VARCHAR(256)";
command.CommandText = sql + ");";
command.ExecuteNonQuery();
counter++;
Collection<uint> indexes = datasource.GetObjectIDsInView(datasource.GetExtents());
//Select all indexes in shapefile, loop through each feature and insert them one-by-one
foreach (uint idx in indexes)
{
//Get feature from shapefile
FeatureDataRow feature = datasource.GetFeature(idx);
if (counter == 0)
{
//Create insert script
string strSQL = " (";
foreach (DataColumn col in feature.Table.Columns)
strSQL += "@" + col.ColumnName + ",";
strSQL += "@WKB_Geometry,@Envelope_MinX,@Envelope_MinY, " +
"@Envelope_MaxX,@Envelope_MaxY)";
strSQL = "INSERT INTO " + tablename + strSQL.Replace("@", "") + " VALUES" + strSQL;
command.CommandText = strSQL;
command.Parameters.Clear();
//Add datacolumn parameters
foreach (DataColumn col in feature.Table.Columns)
command.Parameters.Add("@" + col.ColumnName, Type2SqlType(col.DataType));
//Add geometry parameters
command.Parameters.Add("@WKB_Geometry", SqlDbType.VarBinary);
command.Parameters.Add("@Envelope_MinX", SqlDbType.Real);
command.Parameters.Add("@Envelope_MinY", SqlDbType.Real);
command.Parameters.Add("@Envelope_MaxX", SqlDbType.Real);
command.Parameters.Add("@Envelope_MaxY", SqlDbType.Real);
}
//Set values
foreach (DataColumn col in feature.Table.Columns)
command.Parameters["@" + col.ColumnName].Value = feature[col];
if (feature.Geometry != null)
{
command.Parameters["@WKB_Geometry"].Value = feature.Geometry.AsBinary();
//Add the geometry as Well-Known Binary
BoundingBox box = feature.Geometry.GetBoundingBox();
command.Parameters["@Envelope_MinX"].Value = box.Left;
command.Parameters["@Envelope_MinY"].Value = box.Bottom;
command.Parameters["@Envelope_MaxX"].Value = box.Right;
command.Parameters["@Envelope_MaxY"].Value = box.Top;
}
else
{
command.Parameters["@WKB_Geometry"].Value = DBNull.Value;
command.Parameters["@Envelope_MinX"].Value = DBNull.Value;
command.Parameters["@Envelope_MinY"].Value = DBNull.Value;
command.Parameters["@Envelope_MaxX"].Value = DBNull.Value;
command.Parameters["@Envelope_MaxY"].Value = DBNull.Value;
}
//Insert row
command.ExecuteNonQuery();
counter++;
}
//Create indexes
command.Parameters.Clear();
command.CommandText = "CREATE INDEX [IDX_Envelope_MinX] ON " + tablename + " (Envelope_MinX)";
command.ExecuteNonQuery();
command.CommandText = "CREATE INDEX [IDX_Envelope_MinY] ON " + tablename + " (Envelope_MinY)";
command.ExecuteNonQuery();
command.CommandText = "CREATE INDEX [IDX_Envelope_MaxX] ON " + tablename + " (Envelope_MaxX)";
command.ExecuteNonQuery();
command.CommandText = "CREATE INDEX [IDX_Envelope_MaxY] ON " + tablename + " (Envelope_MaxY)";
command.ExecuteNonQuery();
conn.Close();
}
datasource.Close();
return counter;
}
示例5: BuildFromProvider
/// <summary>
/// Builds from the given provider.
/// </summary>
/// <param name="provider">
/// The base <see cref="SharpMap.Data.Providers.IProvider"/>
/// from witch initialize the <see cref="NtsProvider"/> instance.
/// </param>
private void BuildFromProvider(IProvider provider)
{
// Features list initialization
_features = new List<Feature>(provider.GetFeatureCount());
try
{
// Load all features from the given provider
provider.Open();
Collection<uint> ids = provider.GetObjectIDsInView(provider.GetExtents());
foreach (uint id in ids)
{
var dataRow = provider.GetFeature(id);
var geometry = dataRow.Geometry;
AttributesTable attributes = new AttributesTable();
foreach (DataColumn column in dataRow.Table.Columns)
{
if (dataRow[column] == null || dataRow[column] is DBNull)
throw new ApplicationException("Null values not supported");
attributes.AddAttribute(column.ColumnName, dataRow[column]);
}
_features.Add(new Feature(geometry, attributes));
}
}
finally
{
if (provider.IsOpen)
provider.Close();
}
}
示例6: ThreadingTest
protected ThreadingTest(IProvider provider)
{
_provider = provider;
_provider.Open();
_extents = provider.GetExtents();
_provider.Close();
}
示例7: CreateDataTable
//.........这里部分代码省略.........
{
var command = new SQLiteCommand();
command.Connection = conn;
conn.Open();
//Try to drop table if it exists
try
{
command.CommandText = "DROP TABLE \"" + tablename + "\";";
command.ExecuteNonQuery();
}
catch
{
}
//Create new table for storing the datasource
string sql = "CREATE TABLE " + tablename + " (fid INTEGER PRIMARY KEY, geom TEXT, " +
"minx REAL, miny REAL, maxx REAL, maxy REAL, oid INTEGER";
foreach (var col in columns)
if (col.AttributeType != typeof (String))
sql += ", " + col.AttributeName + " " + Type2SqlLiteTypeString(col.AttributeType);
else
sql += ", " + col.AttributeName + " TEXT";
command.CommandText = sql + ");";
//command.CommandText = sql;
command.ExecuteNonQuery();
counter++;
var indexes = datasource.GetOidsInView(datasource.GetExtents());
//Select all indexes in shapefile, loop through each feature and insert them one-by-one
foreach (var idx in indexes)
{
//Get feature from provider
var feature = datasource.GetFeatureByOid(idx);
if (counter == 0)
{
//Create insert script
var strSQL = " (";
foreach (var col in columns)
strSQL += "@" + col.AttributeName + ",";
strSQL += "@geom,@minx,@miny, " +
"@maxx,@maxy)";
strSQL = "INSERT INTO " + tablename + strSQL.Replace("@", "") + " VALUES" + strSQL;
command.CommandText = strSQL;
command.Parameters.Clear();
//Add datacolumn parameters
foreach (var col in columns)
command.Parameters.Add("@" + col.AttributeName, Type2SqlType(col.AttributeType));
//Add geometry parameters
//command.Parameters.Add("@geom", DbType.Binary);
command.Parameters.Add("@minx", DbType.Double);
command.Parameters.Add("@miny", DbType.Double);
command.Parameters.Add("@maxx", DbType.Double);
command.Parameters.Add("@maxy", DbType.Double);
}
//Set values
foreach (var col in columns)
command.Parameters["@" + col.AttributeName].Value = feature.Attributes[col.AttributeName];
if (feature.Geometry != null)
{
if (_logger.IsDebugEnabled)
_logger.Debug(feature.Geometry.AsBinary().Length.ToString(NumberFormatInfo.InvariantInfo));
command.Parameters.AddWithValue("@geom", feature.Geometry.AsText()); //.AsBinary());
//command.Parameters["@geom"].Value = "X'" + ToHexString(feature.Geometry.AsBinary()) + "'"; //Add the geometry as Well-Known Binary
var box = feature.Geometry.EnvelopeInternal;
command.Parameters["@minx"].Value = box.MinX;
command.Parameters["@miny"].Value = box.MinY;
command.Parameters["@maxx"].Value = box.MaxX;
command.Parameters["@maxy"].Value = box.MaxY;
}
else
{
command.Parameters["@geom"].Value = DBNull.Value;
command.Parameters["@minx"].Value = DBNull.Value;
command.Parameters["@miny"].Value = DBNull.Value;
command.Parameters["@maxx"].Value = DBNull.Value;
command.Parameters["@maxy"].Value = DBNull.Value;
}
//Insert row
command.ExecuteNonQuery();
counter++;
}
//Create indexes
//command.Parameters.Clear();
//command.CommandText = "CREATE INDEX [IDX_Envelope_MinX] ON " + tablename + " (Envelope_MinX)";
//command.ExecuteNonQuery();
//command.CommandText = "CREATE INDEX [IDX_Envelope_MinY] ON " + tablename + " (Envelope_MinY)";
//command.ExecuteNonQuery();
//command.CommandText = "CREATE INDEX [IDX_Envelope_MaxX] ON " + tablename + " (Envelope_MaxX)";
//command.ExecuteNonQuery();
//command.CommandText = "CREATE INDEX [IDX_Envelope_MaxY] ON " + tablename + " (Envelope_MaxY)";
//command.ExecuteNonQuery();
conn.Close();
}
datasource.Close();
return counter;
}