public static SpatialColumnInfo GetColumnInfo(SQLiteConnection connection, string tableName, string columnName, string database = "main") { var cmd = connection.CreateCommand(); cmd.CommandText = "SELECT f_table_name, f_geometry_column, type, coord_dimension, srid, spatial_index_enabled FROM " + database + ".geometry_columns WHERE UPPER(f_table_name) = @tablename AND UPPER(f_geometry_column) = @columnName"; cmd.Parameters.Add("tableName", System.Data.DbType.String).Value = tableName.ToUpper(); cmd.Parameters.Add("columnName", System.Data.DbType.String).Value = columnName.ToUpper(); foreach (var row in SqliteUtil.GetRows(cmd)) { var info = new SpatialColumnInfo(); info.TableName = (string)row[0]; info.ColumnName = (string)row[1]; info.Type = (string)row[2]; info.Dimension = row[3] is string ? ((string)row[3]).Length : Convert.ToInt32(row[3]); info.SRID = Convert.ToInt32(row[4]); info.SpatialIndex = (SpatialIndexMode)Convert.ToInt32(row[5]); return info; } return null; }
private void AddRow(SpatialColumnInfo spatialColumnInfo) { var item = lvwTables.Items.Add(spatialColumnInfo.TableName); item.SubItems.Add(spatialColumnInfo.ColumnName); item.SubItems.Add(spatialColumnInfo.Type); item.SubItems.Add(spatialColumnInfo.SRID.ToString()); item.SubItems.Add(spatialColumnInfo.SpatialIndex.ToString()); item.Tag = spatialColumnInfo; }