Ejemplo n.º 1
0
        public SQL2008TableLayer(SqlCommand dbCommand, string tableName, string shapeFieldName, string layerName, string keyFieldName)
            : base(dbCommand, shapeFieldName, layerName, keyFieldName)
        {
            if (string.IsNullOrEmpty(tableName))
            {
                throw new ArgumentNullException("tableName");
            }

            _tableName            = tableName;
            dbCommand.CommandText = "Select * from " + tableName;

            SqlDataReader     dataReader = dbCommand.ExecuteReader(CommandBehavior.SchemaOnly);
            DataTable         dataTable  = dataReader.GetSchemaTable();
            List <DataColumn> columns    = new List <DataColumn>();

            foreach (DataRow row in dataTable.Rows)
            {
                DataColumn dc = new DataColumn(row["ColumnName"] as string, row["DataType"] as Type);
                dc.AllowDBNull   = (bool)row["AllowDBNull"];
                dc.AutoIncrement = ( bool )row["IsAutoIncrement"];
                columns.Add(dc);
            }
            _gisFields = new SQL2008GISFields(columns);
            dataReader.Close();
        }
Ejemplo n.º 2
0
        public void CreateGeographyfromGISFieldsTest(string serverName, string databaseName, string tableName, string geometryFieldName)
        {
            DataColumn dc1 = new DataColumn("ID", typeof(int));
            DataColumn dc2 = new DataColumn("SHAPE", typeof(SqlGeography));

            DataColumn[]     list      = new DataColumn[] { dc1, dc2 };
            SQL2008GISFields gisFields = new SQL2008GISFields(list);

            ServerConnection conn   = new ServerConnection(serverName);
            SQL2008Server    server = new SQL2008Server(conn);

            target = new SQL2008Database(server, databaseName);

            target.CreateGeographyTable(gisFields, tableName, geometryFieldName);

            target.DeleteTable(tableName);
        }
        public SQL2008EditableLayer(SqlCommand dbCommand, string tableName, string shapeFieldName, string layerName, string keyFieldName)
            : base(dbCommand, shapeFieldName, layerName, keyFieldName)
        {
            if (string.IsNullOrEmpty(tableName))
            {
                throw new ArgumentNullException("tableName");
            }

            _tableName            = tableName;
            dbCommand.CommandText = tableName;
            dbCommand.CommandType = CommandType.TableDirect;

            SqlDataReader dataReader = dbCommand.ExecuteReader(CommandBehavior.SchemaOnly);
            DataTable     dataTable  = dataReader.GetSchemaTable();

            _gisFields = new SQL2008GISFields(dataTable.Columns.ToArray());
            dataReader.Close();
        }
Ejemplo n.º 4
0
        public void CreateTest()
        {
            DataTable  dt  = new DataTable("GeographyTable");
            DataColumn dc1 = new DataColumn("ID", typeof(int));
            DataColumn dc2 = new DataColumn("SHAPE", typeof(SqlGeography));

            dt.Columns.Add(dc1);
            dt.Columns.Add(dc2);

            DataColumn[] list = new DataColumn[] { dc1, dc2 };
            target = new SQL2008GISFields(list);

            int count = 0;

            foreach (DataColumn dc in target)
            {
                count++;
            }

            Assert.AreEqual(1, target.AttributeFieldCount, "The number of columns does not match.");
            Assert.AreEqual(1, count, "The number of columns does not match.");
            Assert.AreEqual("GeometryCollection", target.GeometryType, "The geometry column type does not match.");
        }