一个简单的程序,功能是通过ado.net访问sql server 2008
但是如果数据库表中包含有类型为geography的字段,则代码在访问数据库时报错
报错内容是:
“System.InvalidOperationException”类型的未经处理的异常在 System.Data.dll 中发生
其他信息: DataReader.GetFieldType(20) 返回了 null。
代码如下:
public void GetData() { string sConnectionString; //连接数据库字符串 sConnectionString = @"Data Source=xx.xx.xx.xx;Initial Catalog=xx;Persist Security Info=True;User ID=x;Password=xx"; //创建SqlConnection数据库连接对象 SqlConnection Conn = new SqlConnection(sConnectionString); //打开Conn Conn.Open(); SqlDataAdapter Customer = new SqlDataAdapter("Select * From test", Conn); DataSet ds = new DataSet(); //填充数据集 Customer.Fill(ds, "Customers"); }
报错行在Customer.Fill(ds, "Customers");
同样的代码,同样的数据库,在win7电脑上执行没问题。
报错截图如下:
看一下你的.NET配置环境,可能你win10 和 win7 上引用的System.Data.dll不同
怎么看?
不是什么win10的问题,很明显是你代码问题
什么问题,实际执行过的代码