C#dotnet6.0连接Oracle数据库的坑

  前天程序基本算走到最后一步,就是从Oracle数据库提取出记录,并根据Redis实时数据进行更新后写入到TaoS数据,最后一步就是写入TaoS数据库了。

  总算是完成了。

  安装Virual Studio开发环境就用了两天,使用C#进行开发不容易。

  连接TaoS数据库必须使用dotnet6.0,写完了入库程序,我也过了这个坎。

  执行,结果读取Oracle数据库报错了!!!

  怎么可能?!前面正常的,不过是dotnet4.8或者4.7.2,doctnet6是长期稳定版,不会操作oracle有问题吧?

  结果还真是!!!

  从昨天晚上折腾到今天下午,doctnet6下面连接oracle就是频繁出各种问题,在网络上找了很多资料,一次次尝试,都不行!

  写一个基于dotnet6.0的dll用于写入TaoS数据库,主程序是基于dotnet4.8的操作oracle,在主程序中调用dll写入TaoS数据库,也不行!

  真是崩溃!

  朋友发Oracle.ManagedDataAccess.Core,说试一下这个,前面我试过Oracle.ManagedDataAccess不行,在docnat6以下的版本是可以的,但是偏偏就是在doctnet6这个版本报错,也就没有当回事,就在Nuget下将这个包安装上,心想肯定也一样过不去。

  执行,奇葩!正常读取oracle数据了!!!

  Oracle.ManagedDataAccess.Core简称ODP,是Oracle公司提供并维护,是一个ADO.net的驱动,提供.net环境下快速访问oracle数据库。

   测试代码:

            System.Data.DataTable ReturnDT = new System.Data.DataTable();
            System.Data.DataSet TempSet = new System.Data.DataSet();

            string DBConnStr = "User ID=用户名;Password=密码;Data Source=(DESCRIPTION = (ADDRESS_LIST= (ADDRESS = (PROTOCOL = TCP)(HOST =主机名)(PORT =1521))) (CONNECT_DATA = (SERVICE_NAME = 服务名)))";
            OracleConnection DBConn = new OracleConnection(DBConnStr);
            DBConn.Open();

            string SqlStr = "查询字符串";
            OracleDataAdapter adapter = new OracleDataAdapter(SqlStr, DBConn);
            adapter.Fill(TempSet);
            ReturnDT = TempSet.Tables[0];

            DBConn.Close();
            DBConn.Dispose();
            adapter.Dispose();
            TempSet.Dispose();

            dataGridView1.DataSource= ReturnDT;

猜你喜欢

转载自blog.csdn.net/dawn0718/article/details/127810968
今日推荐