none
SqlDataAdpater.FillSchema - Geometry-Datentyp per SqlGeometry in DataTable RRS feed

  • Frage

  •        

    Hallo,

    nach dem erstellen einer leeren Tabelle per SqlDataAdapter in der eine SQL Server 2012 - Geometry - Spalte enthalten ist versuche ich in der DataTable mittels SqlGeometry-Datentyp eine neue Geometry hinzuzufügen. Beim erhalte ich folgende Ausnahme:

    Der Typ des Werts stimmt nicht mit dem Spaltentyp überein<POINT (100 300)> konnte nicht in der Geometry-Spalte gespeichert werden. Erwarteter Typ: SqlGeometry.

    Bitte um Hilfe, warum dies nicht funktioniert...Danke

    public DataTable CreateEmptyTableGeometryPoint(int srid)
            {
                DataTable dt = new DataTable();

                SqlDataAdapter adapter = new SqlDataAdapter(string.Format("SELECT * FROM Geometry_Point_SRID_{0}",srid), connection);
                adapter.MissingSchemaAction = MissingSchemaAction.AddWithKey;
                adapter.FillSchema(dt, SchemaType.Source);

                return dt;
            }

                            DataTable dtGeometry = dal.CreateEmptyTableGeometryPoint(srid);
                            DataRow rowGeometry = dtGeometry.NewRow();



                            rowGeometry["Geometry"] = SqlGeometry.Point(100.0, 300.0, srid);

    Montag, 8. Oktober 2012 07:38

Antworten

  • Hallo,

    da es hier mit ähnlichem Code funktioniert... hast Du die richtige SqlTypes für den SQL Server 2012 eingebunden,
    im Standard unter %ProgramFiles%\Microsoft SQL Server\110\SDK\Assemblies zu finden?

    Wenn  Du keine lokale SQL Server 2012 Installation hast, so gibt es sie auch im SQL Server 2012 Feature Pack.

    Gruß Elmar

    Montag, 8. Oktober 2012 08:17
    Beantworter

Alle Antworten