我有一个Microsoft SQL Server 2008(SP3)数据库。我能够使用Geography数据类型将一些地理空间数据写入表中。
我现在正尝试从数据库中读取数据,但出现错误:
DataReader.GetField(2)返回null
数据列中当然有信息。
下面的代码很简单。我正在使用.NET Framework 4.7。有什么明显的我不在处理吗?
string sql = @"
SELECT *
FROM Locations
WHERE LocID= " + tableOutput.OID.ToString();
System.Data.DataSet ds = Database.RequestData(sql);
static public System.Data.DataSet RequestData(string sql)
{
System.Data.DataSet ds = null;
try
{
using (SqlConnection conn = new SqlConnection(connectionString))
{
conn.Open();
using (SqlDataAdapter importer = new SqlDataAdapter(sql, conn))
{
ds = new System.Data.DataSet();
importer.Fill(ds, "Data");
return ds;
}
}
}
catch (Exception e)
{
Logger.Write(e.Message);
return ds;
}
}
答案 0 :(得分:0)
我需要解决两件事:
首先从NuGet管理器中下载Microsoft.SqlServer.Types。
然后我需要手动将依赖项添加到根项目目录中的App.config中
<dependentAssembly>
<assemblyIdentity name="Microsoft.SqlServer.Types" publicKeyToken="89845dcd8080cc91" culture="neutral" />
<bindingRedirect oldVersion="0.0.0.0-14.0.0.0" newVersion="14.0.0.0" />
</dependentAssembly>