2012-10-08 25 views
3

我創建裝載模式:SQL Server 2012的幾何 - 利用SqlDataAdapter的

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); 

我得到一個ArgumentException

爲什麼我會得到這個異常?有人能幫我嗎?

+0

哪行代碼引發異常? – BStateham

+0

看起來錯誤必須在'rowGeometry [「Geometry」] = ...'行。數據表中實際是「幾何」嗎?我試着用我的一個表,我得到了'System.ArgumentException:Column'Geometry'不屬於表ABC'。你的'ArgumentException'是否在消息中顯示更多細節? – gmm

回答

0

DataRow rowGeometry = dtGeometry.NewRow()之後添加一個斷點並檢查您的模式。

仔細檢查「幾何」列的數據類型。它可能沒有正確填寫。

foreach(DataColumn column in rowGeometry.table.Columns) 
{ 
    Console.WriteLine(column.DataType); 
}