【发布时间】:2015-09-14 15:04:24
【问题描述】:
Azure 网站上的 ASP.net 网络表单从包含地理字段的表中进行选择。此字段导致错误“DataReader.GetFieldType(0) 返回 null”。这是从 .ASPX.CS 文件创建表和代码的 SQL。
创建测试表的 SQL [T]:
CREATE TABLE [dbo].[T](
[ID] [int] IDENTITY(1,1) NOT NULL,
[P] [geography] NULL,
CONSTRAINT [PK_T] PRIMARY KEY CLUSTERED
(
[ID] ASC
)WITH (PAD_INDEX = OFF, STATISTICS_NORECOMPUTE = OFF, IGNORE_DUP_KEY = OFF, ALLOW_ROW_LOCKS = ON, ALLOW_PAGE_LOCKS = ON) ON [PRIMARY]
) ON [PRIMARY] TEXTIMAGE_ON [PRIMARY]
GO
INSERT INTO T (P) VALUES (geography::Point(51.4618933852762, -0.926690306514502, 4326));
Test.aspx.cs
using System;
using System.Collections.Generic;
using System.Data;
using System.Data.SqlClient;
using System.Web;
using System.Web.UI;
using System.Web.UI.WebControls;
public partial class Test : System.Web.UI.Page
{
protected void Page_Load(object sender, EventArgs e)
{
string ConnectionStr = "Server=tcp:Server1,1433;Database=DB;User ID=User1;Password=Password1;Trusted_Connection=False;Encrypt=True;Connection Timeout=5;";
SqlConnection Connection = new SqlConnection(ConnectionStr);
Connection.Open();
//string SQL = "SELECT CONVERT(VARBINARY(100), P) P FROM T";
string SQL = "SELECT P FROM T";
SqlDataAdapter da = new SqlDataAdapter(SQL, Connection);
DataTable dt = new DataTable();
da.Fill(dt);
Connection.Close();
Response.Write(dt.Rows[0]["P"].ToString());
}
}
【问题讨论】:
标签: c# asp.net sql-server azure azure-sql-database