Ejemplo n.º 1
0
        /// <summary>
        /// Returns a GeospatialServices.Runtime.FeatureDataRow based on a RowID
        /// </summary>
        /// <param name="RowID"></param>
        /// <returns>datarow</returns>
        public GeospatialServices.Runtime.FeatureDataRow GetFeatureDataRow(uint RowID)
        {
            using (SqlConnection conn = new SqlConnection(ConnectionString))
            {
                string strSQL = String.Format("SELECT * FROM {0}", this.Table);
                using (SqlDataAdapter adapter = new SqlDataAdapter(strSQL, conn))
                {
                    conn.Open();
                    System.Data.DataSet ds = new System.Data.DataSet();
                    adapter.Fill(ds);
                    conn.Close();
                    if (ds.Tables.Count > 0)
                    {
                        FeatureDataTable fdt = new FeatureDataTable(ds.Tables[0]);
                        foreach (System.Data.DataColumn col in ds.Tables[0].Columns)
                        {
                            if (col.ColumnName != this.GeometryColumn && col.ColumnName != this.GeometryColumn)
                            {
                                fdt.Columns.Add(col.ColumnName, col.DataType, col.Expression);
                            }
                        }

                        if (ds.Tables[0].Rows.Count > (int)RowID)
                        {
                            System.Data.DataRow dr = ds.Tables[0].Rows[(int)RowID];

                            GeospatialServices.Runtime.FeatureDataRow fdr = fdt.NewRow();
                            foreach (System.Data.DataColumn col in ds.Tables[0].Columns)
                            {
                                if (col.ColumnName != this.GeometryColumn && col.ColumnName != this.GeometryColumn)
                                {
                                    fdr[col.ColumnName] = dr[col];
                                }
                            }
                            fdr.Geometry = (SqlGeometry)dr[this.GeometryColumn];
                            return(fdr);
                        }
                        else
                        {
                            return(null);
                        }
                    }
                    else
                    {
                        return(null);
                    }
                }
            }
        }
Ejemplo n.º 2
0
 /// <summary>
 /// Creates a new FeatureDataSet for the layer with all features that intersect the supplied query feature geometry
 /// </summary>
 /// <param name="queryFeature"></param>
 /// <param name="fds"></param>
 public void ExecuteSpatialQuery(SqlGeometry queryFeature, GeospatialServices.Runtime.FeatureDataSet fds)
 {
     using (SqlConnection conn = new SqlConnection(ConnectionString))
     {
         string strSQL = String.Format("SELECT * FROM {0} WHERE {1}.STIntersects(Geometry::STGeomFromText('{2}',4326)) = 1", this.Table, this.GeometryColumn, queryFeature.ToString());
         using (SqlDataAdapter adapter = new SqlDataAdapter(strSQL, conn))
         {
             conn.Open();
             System.Data.DataSet ds = new System.Data.DataSet();
             adapter.Fill(ds);
             conn.Close();
             if (ds.Tables.Count > 0)
             {
                 FeatureDataTable fdt = new FeatureDataTable(ds.Tables[0]);
                 foreach (System.Data.DataColumn col in ds.Tables[0].Columns)
                 {
                     if (col.ColumnName != this.GeometryColumn && col.ColumnName != this.GeometryColumn)
                     {
                         fdt.Columns.Add(col.ColumnName, col.DataType, col.Expression);
                     }
                 }
                 foreach (System.Data.DataRow dr in ds.Tables[0].Rows)
                 {
                     GeospatialServices.Runtime.FeatureDataRow fdr = fdt.NewRow();
                     foreach (System.Data.DataColumn col in ds.Tables[0].Columns)
                     {
                         if (col.ColumnName != this.GeometryColumn && col.ColumnName != this.GeometryColumn)
                         {
                             fdr[col.ColumnName] = dr[col];
                         }
                     }
                     fdr.Geometry = (SqlGeometry)dr[this.GeometryColumn];
                     fdt.AddRow(fdr);
                 }
                 fds.Tables.Add(fdt);
             }
         }
     }
 }
Ejemplo n.º 3
0
 /// <summary>
 /// Removes the row from the table
 /// </summary>
 /// <param name="row">Row to remove</param>
 public void RemoveRow(FeatureDataRow row)
 {
     base.Rows.Remove(row);
 }
Ejemplo n.º 4
0
 /// <summary>
 /// Initializes a new instance of the FeatureDataRowChangeEventArgs class.
 /// </summary>
 /// <param name="row"></param>
 /// <param name="action"></param>
 public FeatureDataRowChangeEventArgs(FeatureDataRow row, DataRowAction action)
 {
     this.eventRow    = row;
     this.eventAction = action;
 }
Ejemplo n.º 5
0
 /// <summary>
 /// Adds a row to the FeatureDataTable
 /// </summary>
 /// <param name="row"></param>
 public void AddRow(FeatureDataRow row)
 {
     base.Rows.Add(row);
 }