Foxtable(狐表)用户栏目专家坐堂 → SQLCommand问题


  共有3258人关注过本帖树形打印复制链接

主题:SQLCommand问题

帅哥哟,离线,有人找我吗?
不倒的翁
  1楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:一尾狐 帖子:476 积分:3523 威望:0 精华:0 注册:2012/12/13 14:23:00
SQLCommand问题  发帖心情 Post By:2014/10/8 14:21:00 [显示全部帖子]

 因对统一数据库进行数据记录和查询,使用SQLCommand后经常出现“连接未关闭。 连接的当前状态为正在连接。”的错误。
请问如何避免。
翻阅BAIDU,都说是析构未关闭。
如何解决同时访问数据库的问题呢?
理论上建立多个相同配置不同名称的数据源能否有效解决这个问题咧???

 回到顶部
帅哥哟,离线,有人找我吗?
不倒的翁
  2楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:一尾狐 帖子:476 积分:3523 威望:0 精华:0 注册:2012/12/13 14:23:00
  发帖心情 Post By:2014/10/8 14:26:00 [显示全部帖子]

 全局未声明SQLCommand
只有全局代码中自己写的UDP数据接收代码中涉及SQLCommand
但也是New实例化的呀。

 回到顶部
帅哥哟,离线,有人找我吗?
不倒的翁
  3楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:一尾狐 帖子:476 积分:3523 威望:0 精华:0 注册:2012/12/13 14:23:00
  发帖心情 Post By:2014/10/8 14:27:00 [显示全部帖子]

以下是引用Bin在2014-10-8 14:25:00的发言:
不应该出现这个问题啊. 上个例子看看.
除非你在全局变量声明一个SQLCOMMAND 然后用计时器或者多线程 同时使用这个SQLCOMMAND


全局线程中是有使用SQLCommand的。但也是实例化的呀。

 回到顶部
帅哥哟,离线,有人找我吗?
不倒的翁
  4楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:一尾狐 帖子:476 积分:3523 威望:0 精华:0 注册:2012/12/13 14:23:00
  发帖心情 Post By:2014/10/8 14:31:00 [显示全部帖子]

还有个情况哦。使用.NET的UDPClient后台线程接收数据,如果同时再启用计划管理,这个计划好像只能运行1次,再次开启没有反映的哦。

不知道是不是和线程冲突了,还是优先级的问题。


 回到顶部
帅哥哟,离线,有人找我吗?
不倒的翁
  5楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:一尾狐 帖子:476 积分:3523 威望:0 精华:0 注册:2012/12/13 14:23:00
  发帖心情 Post By:2014/10/8 14:33:00 [显示全部帖子]

以下是引用Bin在2014-10-8 14:29:00的发言:
不能这样做,每次访问数据库都应该使用一个全新的SQLCOMMAND

BIN版,全局我没有声明SQLCommand的,只有在UDPClient的事件中使用了SQLCommand,并且也是New的,事件是写在全局中的,这个应该没问题的吧。。。

 回到顶部
帅哥哟,离线,有人找我吗?
不倒的翁
  6楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:一尾狐 帖子:476 积分:3523 威望:0 精华:0 注册:2012/12/13 14:23:00
  发帖心情 Post By:2014/10/8 14:36:00 [显示全部帖子]


图片点击可在新窗口打开查看此主题相关图片如下:无标题.jpg
图片点击可在新窗口打开查看
全局中只有这么一个SQLCommand,还是NEW的。

窗口代码中写的SQL也都是New。。。。


 回到顶部
帅哥哟,离线,有人找我吗?
不倒的翁
  7楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:一尾狐 帖子:476 积分:3523 威望:0 精华:0 注册:2012/12/13 14:23:00
  发帖心情 Post By:2014/10/8 14:44:00 [显示全部帖子]

以下是引用Bin在2014-10-8 14:37:00的发言:
不应该.你看一下出错的是那个SQLCOMMAND 再分析一下看看

搞不定传个可以重现错误的例子上来

错误捕获还没位置显示的。
同时如果连接未关闭的错误不跳出来的话,还有个错误也会跳出来,BAIDU了下性质差不多。都是连接未关闭造成的。

 


图片点击可在新窗口打开查看此主题相关图片如下:无标题2.jpg
图片点击可在新窗口打开查看

 回到顶部
帅哥哟,离线,有人找我吗?
不倒的翁
  8楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:一尾狐 帖子:476 积分:3523 威望:0 精华:0 注册:2012/12/13 14:23:00
  发帖心情 Post By:2014/10/8 14:50:00 [显示全部帖子]

还有个问题。SQLCommand连接的数据源和外部DataTable是同一数据源

同时进行后台数据访问是否会有冲突??????


 回到顶部
帅哥哟,离线,有人找我吗?
不倒的翁
  9楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:一尾狐 帖子:476 积分:3523 威望:0 精华:0 注册:2012/12/13 14:23:00
  发帖心情 Post By:2014/10/8 15:00:00 [显示全部帖子]

Error_Log记录信息。

[2014/10/8]
错误发生位置:
错误信息:内部 .Net Framework 数据提供程序错误 12。
详细信息:System.InvalidOperationException: 内部 .Net Framework 数据提供程序错误 12。
   在 System.Data.ProviderBase.DbConnectionInternal.CreateReferenceCollection()
   在 System.Data.ProviderBase.DbConnectionInternal.AddWeakReference(Object value, Int32 tag)
   在 System.Data.OleDb.OleDbConnection.AddWeakReference(Object value, Int32 tag)
   在 System.Data.OleDb.OleDbCommand.ExecuteReaderInternal(CommandBehavior behavior, String method)
   在 System.Data.OleDb.OleDbCommand.ExecuteReader(CommandBehavior behavior)
   在 System.Data.OleDb.OleDbCommand.System.Data.IDbCommand.ExecuteReader(CommandBehavior behavior)
   在 System.Data.Common.DbDataAdapter.FillInternal(DataSet dataset, DataTable[] datatables, Int32 startRecord, Int32 maxRecords, String srcTable, IDbCommand command, CommandBehavior behavior)
   在 System.Data.Common.DbDataAdapter.Fill(DataTable[] dataTables, Int32 startRecord, Int32 maxRecords, IDbCommand command, CommandBehavior behavior)
   在 System.Data.Common.DbDataAdapter.Fill(DataTable dataTable)
   在 Foxtable.SQLCommand.ExecuteReader(Boolean Save)

[2014/10/8]
错误发生位置:
错误信息:连接未关闭。 连接的当前状态为正在连接。
详细信息:System.InvalidOperationException: 连接未关闭。 连接的当前状态为正在连接。
   在 System.Data.ProviderBase.DbConnectionBusy.OpenConnection(DbConnection outerConnection, DbConnectionFactory connectionFactory)
   在 System.Data.OleDb.OleDbConnection.Open()
   在 Foxtable.SQLCommand.ExecuteScalar()

[2014/10/8]
错误发生位置:
错误信息:内部 .Net Framework 数据提供程序错误 12。
详细信息:System.InvalidOperationException: 内部 .Net Framework 数据提供程序错误 12。
   在 System.Data.ProviderBase.DbConnectionInternal.CreateReferenceCollection()
   在 System.Data.ProviderBase.DbConnectionInternal.AddWeakReference(Object value, Int32 tag)
   在 System.Data.OleDb.OleDbConnection.AddWeakReference(Object value, Int32 tag)
   在 System.Data.OleDb.OleDbCommand.ExecuteReaderInternal(CommandBehavior behavior, String method)
   在 System.Data.OleDb.OleDbCommand.ExecuteReader(CommandBehavior behavior)
   在 System.Data.OleDb.OleDbCommand.System.Data.IDbCommand.ExecuteReader(CommandBehavior behavior)
   在 System.Data.Common.DbDataAdapter.FillInternal(DataSet dataset, DataTable[] datatables, Int32 startRecord, Int32 maxRecords, String srcTable, IDbCommand command, CommandBehavior behavior)
   在 System.Data.Common.DbDataAdapter.Fill(DataTable[] dataTables, Int32 startRecord, Int32 maxRecords, IDbCommand command, CommandBehavior behavior)
   在 System.Data.Common.DbDataAdapter.Fill(DataTable dataTable)
   在 Foxtable.SQLCommand.ExecuteReader(Boolean Save)

 

甜版帮忙分析分析。

都是出错在SQLCommand


 回到顶部