win10电脑上用ado.net访问sql server 2008似乎有问题。DataReader.

2019-02-18 09:31发布

问题:

一个简单的程序,功能是通过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电脑上执行没问题。

 

报错截图如下:

回答1:

看一下你的.NET配置环境,可能你win10 和 win7 上引用的System.Data.dll不同



回答2:

不是什么win10的问题,很明显是你代码问题