How to: Load Data from a SQL Geometry Datasource
- 2 minutes to read
To load data from a SQL Geometry data source, do the following.
- Create a SqlGeometryDataAdapter object.
- Specify its SqlGeometryDataAdapter.ConnectionString, SqlGeometryDataAdapter.SqlText and SqlGeometryDataAdapter.SpatialDataMember properties.
- Assign this object to the VectorItemsLayer.Data property.
Note
All data table field values loaded from the database will be provided as attributes for each SqlGeometryItem object generated using SqlGeometryDataAdapter.
Note
A complete sample project is available at https://github.com/DevExpress-Examples/how-to-load-data-from-a-sql-geometry-data-source-t175898
const string filePath = "..\\..\\Data\\SQLG.mdf";
private void Form1_Load(object sender, System.EventArgs e) {
string fullFilePath = Path.GetFullPath(Path.Combine(Application.StartupPath, filePath));
SqlGeometryDataAdapter adapter = new SqlGeometryDataAdapter() {
ConnectionString = "Data Source=(local);AttachDbFileName=" + fullFilePath +
";Database=SqlGeometryDB;Integrated Security=True;MultipleActiveResultSets=True",
SqlText = "SELECT TOP 1000 [GeomCol1],[TextCol] FROM [dbo].[DemoTable]",
SpatialDataMember = "GeomCol1"
};
VectorItemsLayer layer = new VectorItemsLayer() {
Data = adapter,
ShapeTitlesPattern = "{TextCol}"
};
layer.DataLoaded += layer_DataLoaded;
mapControl1.Layers.Add(layer);
}
void layer_DataLoaded(object sender, DataLoadedEventArgs e) {
mapControl1.ZoomToFitLayerItems();
}