首页 > 数据库 >FirebirdSql.Data.FirebirdClient.FbDataAdapter的bug吗

FirebirdSql.Data.FirebirdClient.FbDataAdapter的bug吗

时间:2023-12-15 13:34:42浏览次数:32  
标签:FirebirdSql FbDataAdapter da Connection SelectCommand new dt Data

在连接Firebird4数据库时,使用以下:

	 	FbDataAdapter da = new FbDataAdapter(sql, this.cnstring);
		DataTable dt = new DataTable();
		da.Fill(dt);
		return dt;

 在一直的相像中,FbDataAdapter在接收到连接字符串时,会自动创建一个Connection并Open使用,用完再Close,即不需要我们外部操作。但在实际中出现了错误,使用一会后会出现 Connection pool is full错误

应该是connection打开后没有关闭,改为以下代码后不再出错误:

   using (FbConnection cn = new FbConnection(this.cnstring))
   {
       cn.Open();
       FbDataAdapter da = new FbDataAdapter(sql, cn);
       DataTable dt = new DataTable();
       da.Fill(dt);
       return dt;
   }

  查询FbDataAdapter的源代码,增加一行代码SelectCommand.Connection.Close()后程序正常

	protected override void Dispose(bool disposing)
	{
		if (disposing)
		{
			if (!_disposed)
			{
				_disposed = true;
				if (_shouldDisposeSelectCommand)
				{
					if (SelectCommand != null)
					{
						SelectCommand.Connection.Close();
						SelectCommand.Close();
						SelectCommand.Dispose();
						SelectCommand = null;
					}
				}
				base.Dispose(disposing);
			}
		}
	}

 

也许不是bug,也许是不同供应商实现的方式不一样,因此以后无论是对mysql还是mssql时,都自己打开connection,使用后自己关闭要靠谱一点。

标签:FirebirdSql,FbDataAdapter,da,Connection,SelectCommand,new,dt,Data
From: https://www.cnblogs.com/81/p/17903192.html

相关文章

  • pandas.read_excel默认读取第一行为列名 但是 pandas.DataFrame默认没有列名, 第一行
    pandas.read_excel默认读取第一行为列名headerint,listofint,default0Row(0-indexed)touseforthecolumnlabelsoftheparsedDataFrame.Ifalistofintegersispassedthoserowpositionswillbecombinedintoa MultiIndex.UseNoneifthereisnoheader.......
  • 202312142321_《遍历 for customised data structure 》
    functioncalculateAssembledSetsAndReturnSkus(suitComponents,inventory){letcomponentCount={};letminComponent={};letresult={};//CountcomponentsinsuitComponentsObject.entries(suitComponents).forEach(([_,components])......
  • 【活动回顾】Databend 云数仓与 Databend Playground 扩展组件介绍
    2023年12月7日,作为KubeSphere的合作伙伴,Databend荣幸地受邀参与了KubeSphere社区主办的云原生技术直播活动。本次活动的核心议题为「Databend云数仓与DatabendPlayground扩展组件介绍」,此次分享由DatabendLabs的研发工程师尚卓燃担任主讲嘉宾,向与会者呈现了一场......
  • Vue 图片上传formdata()传参形式
    1.接口需要设置 headers:{'Content-Type':'multipart/form-data'}, from-data流的形式传参 2.jshtml://文件上传<divclass="file"><el-buttontype="primary"style="width:170px"icon="el-icon-upload......
  • 安装NETDATA集群监控面板
    安装NETDATA集群监控面板介绍官方链接演示网页:https://my-netdata.io/官方首页:http://netdata.cloud/文档地址:http://docs.netdata.cloudgithub地址:https://github.com/netdata/netdata#infographic安装官网提供一键安装脚本bash<(curl-Sshttps://my-netdata.io/kick......
  • 浅谈 JSON 对象和 FormData 相互转换
    前言大家都知道,前端在和后台进行交互联调时,肯定避免不了要传递参数,一般情况下,params在get请求中使用,而post请求下,我们有两种常见的传参方式:JSON对象格式和formData格式,但是一些场景是需要我们对这两种数据格式进行转换的,例如表单提交,有些是JSON对象格式的数据,有些是F......
  • 使用Apache POI 导入导出时出现You need to call a different part of POI to process
    问题复现在学习导出功能时使用HSSFWorkbook导出了一个xxx.xlsx格式的文件,然后用XSSFWorkbook的读取方式来拿文件去导入时出现了这个bug这是当时做导出测试代码Workbookwb=newHSSFWorkbook();CreationHelpercreationHelper=wb.getCreationHelper();Sheetsheet=wb.cr......
  • 使用NineData,轻松完成阿里云RDS MySQL至ClickHouse数据迁移
    云数据库RDSMySQL和云数据库ClickHouse是阿里云推出的两个备受欢迎的数据库解决方案,它们为用户提供了可靠的数据存储方案、分析数仓方案,本文介绍如何快速将RDSMySQL的数据同步到云数据库ClickHouse。如何快速将RDSMySQL的数据同步到云数据库为什么要将RDSMySQL的......
  • Lombok中@Data的坑
    一、问题:实体类中日常使用@Data注解来生成getter/setter方法,有个字段为xPoint的属性,在使用MapStruct映射该字段的时候,发现无法映射到该字段@Mapping(target="x",source="xPoint")二、分析@Data对该字段生成的getter方法为publicStringgetXPoint(){ returnthis.xPo......
  • 将value值是true、false的转为1、0,然后将yData数组里的值全部加个2
         ......