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(); }
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(); }
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."); }