我的表格中包含'地理'类型的列。如何使用C#SqlGeography.Point()
和ado.net将数据保存到此表?我有以下代码
var stringPos = item.Position.Split(',');
var latPos = double.Parse(stringPos[0], CultureInfo.InvariantCulture);
var longPos = double.Parse(stringPos[1], CultureInfo.InvariantCulture);
var position = SqlGeography.Point(latPos, longPos, 4326);
string query = @"INSERT INTO myTable VALUES (@position, @postCode)";
SqlCommand cmd = new SqlCommand(query, con);
cmd.Parameters.AddWithValue("@position", position);
cmd.Parameters.AddWithValue("@postCode", item.ZipCode);
cmd.ExecuteNonQuery();
我有以下代码,但它抛出异常:
必须为UDT参数设置UdtTypeName属性。
答案 0 :(得分:1)
<强>解决方案:强>
更改
cmd.Parameters.AddWithValue("@position", position);
要
cmd.Parameters.Add(new SqlParameter("@position", position) { UdtTypeName = "Geography" });