file-geodatabase-api icon indicating copy to clipboard operation
file-geodatabase-api copied to clipboard

not support Chinese attribute field?

Open lihuadong1988 opened this issue 6 years ago • 2 comments

lihuadong1988 avatar Mar 05 '18 07:03 lihuadong1988

当然支持

sunzechang avatar Dec 02 '19 07:12 sunzechang

public class FgdbDatasetRow : IDatasetRow { private readonly Row _row; private readonly ISpatialReference _spatialReference;

	public FgdbDatasetRow(Row row, ISpatialReference spatialReference)
	{
		_row = row;
		_spatialReference = spatialReference;
	}

	public bool IsNull(string fieldName)
	{
		ThrowIfRowNotInitialized();

		return _row.IsNull(fieldName);
	}

	public string GetString(string fieldName)
	{
		ThrowIfRowNotInitialized();

		return _row.GetString(fieldName);
	}

	public short GetShort(string fieldName)
	{
		ThrowIfRowNotInitialized();

		return _row.GetShort(fieldName);
	}

	public int GetInteger(string fieldName)
	{
		ThrowIfRowNotInitialized();

		return _row.GetInteger(fieldName);
	}

	public DateTime GetDate(string fieldName)
	{
		ThrowIfRowNotInitialized();

		return _row.GetDate(fieldName);
	}

	public double GetDouble(string fieldName)
	{
		ThrowIfRowNotInitialized();

		return _row.GetDouble(fieldName);
	}

	public float GetFloat(string fieldName)
	{
		ThrowIfRowNotInitialized();

		return _row.GetFloat(fieldName);
	}

	public int GetOid(string fieldName)
	{
		ThrowIfRowNotInitialized();

		return _row.GetOID();
	}

	public IGeometry GetGeometry()
	{
		ThrowIfRowNotInitialized();

		var geometry = _row.GetGeometry().ToGeneralGeometry(_spatialReference);
		return geometry;
	}

    public string GetGUID(string fieldName)
    {
        ThrowIfRowNotInitialized();
        return _row.GetGUID(fieldName).ToString();
    }

    public string GetGlobalID(string fieldName)
    {
        ThrowIfRowNotInitialized();
        return _row.GetGlobalID().ToString();
    }

    public string GetXML(string fieldName)
    {
        ThrowIfRowNotInitialized();
        return _row.GetXML(fieldName);
    }

    /// <summary>
    /// 获取二进制的几何属性
    /// </summary>
    /// <param name="fieldName"></param>
    /// <returns></returns>
    public byte[] GetGeoBinary()
    {
        ThrowIfRowNotInitialized();
        return _row.GetGeometry().shapeBuffer;
    }

    private void ThrowIfRowNotInitialized()
	{
		if (_row == null)
		{
			throw new NullReferenceException("Row was not initialized");
		}
	}
}

sunzechang avatar Dec 02 '19 07:12 sunzechang