- android - 多次调用 OnPrimaryClipChangedListener
- android - 无法更新 RecyclerView 中的 TextView 字段
- android.database.CursorIndexOutOfBoundsException : Index 0 requested, 光标大小为 0
- android - 使用 AppCompat 时,我们是否需要明确指定其 UI 组件(Spinner、EditText)颜色
考虑一个简单的设置:
// _conn is the OdbcConnection with a MySQL-Server (MySQL-Connector 3.51)
// _cmd is a created OdbcCommand
// Constructor has created the objects successfully
public void DoSomething() {
if(_conn.State == ConnectionState.Open)
_cmd.ExecuteNonQuery();
}
现在我的问题是,OdbcConnection.State
不可靠。问题是一段时间后连接丢失了,但是 State
-Property 对此一无所知,并一直告诉我至少在我尝试执行之前连接是打开的一个命令(正常失败)。我什至遇到过 State
-Property 永远不会刷新并一直告诉我连接仍然存在(但命令失败)的情况。
当然我可以在我的代码中添加 Try {...} Catch {...}
block ,但我尽量避免使用它们,因为至少要用四行来扩展两行函数错误处理有点……繁重。
所以我的问题是:为什么 OdbcConnection.State
不可靠,我可以修复它吗?
最佳答案
网络的本质是,在您实际尝试发送数据之前,您通常不知道存在问题。如果您只是将插头从计算机背面拔出(或者将插头从客户端和服务器之间某处的开关中拔出),那么操作系统将无法知道,直到它实际尝试发送数据甚至还有问题。
那么,State
不可靠的原因是,如果不实际尝试向服务器发送数据,就不可能使其完全可靠。由于这对于一个简单的属性(整个网络往返)来说要完成的工作太多了,所以它没有这样做,而是尽可能地做最简单的事情。
此外,在您调用 State == Open
和实际执行命令之间存在竞争条件:您可能会调用 State == Open
,并且然后有人在你执行命令之前拔下插头。
所以在一天结束时,无论如何您都必须拥有该异常处理程序。我还建议您不要在每次调用数据库时都设置异常。如果你正在做一个网站,那么有一个页面级处理程序并把它留在那里。除了向用户显示错误消息之外,尝试以任何其他方式“处理”数据库故障真的没有意义......
关于c# - 为什么 ODBCConnection.State 不可靠?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/3438167/
我正在使用这样的辅助方法: private OdbcCommand GetCommand(string sql) { string conString = "blah"
protected OdbcConnection conectarBD() { String StringDeConexion = "Data Source=PABLOZN\\SQLEXPRE
在这里用头撞墙 我们是独立软件开发商,有数百家公司在使用我们的软件,没有任何问题。该软件是 .NET 2.0 上的 Winforms/C#。 我们的一位客户安装了我们的软件,但在他们所有的机器上启动时
考虑一个简单的设置: // _conn is the OdbcConnection with a MySQL-Server (MySQL-Connector 3.51) // _cmd is a cr
我猜测并非所有 SQL 都是平等创建的。我正在深入研究 C# 中的 DSN 和 ODBC 驱动程序的世界,并尝试了一下。我正在尝试获取由 DSN 定义的数据库中的所有表,我所知道的是使用 Transo
我完成了在我的计算机中创建服务器和客户端 ODBC 对象到 Cobol 数据库的过程,并将客户端命名为 PARSECCLI。 我测试了连接,它工作正常。我可以通过 Microsoft Query 获取
需要考虑的两种刷新方法之间是否有任何区别,或者实际上是否相同,可以使用其中任何一种? Sub refresh() Dim workbook_connection As Excel.Workbook
我正在使用 ASP.net 创建 Web 应用程序。我使用 OdbcConnection 连接到 MySQL。但它似乎创建了对象但没有填充数据源和数据名字段。我有一个著名的错误 [IM002] [Mi
我想将 PostgreSQl DB 连接到我的 C# 项目,我找到了这段代码 OdbcConnection DbConnection = new OdbcConnection("connection_
在连接到多个可能的数据源(与数据库无关)方面,上述每种 C# 数据库连接方法的主要优点是什么?同样在性能方面,哪一个可能提供全面的最佳性能? 最后,对于与数据库无关的应用程序,您是否有任何理由避免使用
我的 VB.NET Windows 窗体应用程序中有以下代码: Case "DB2" Try Dim row As DataRow Using cnDB2 As
我正在尝试使用 C# 中的 OdbcConnection 连接到 MySQL 数据库。我收到以下错误: An unhandled exception of type 'System.Data.Odbc
我想使用 Odbc 从 C# 连接到 Access MDB 文件。 当我尝试执行时 OdbcConnection con = new OdbcConnection( "Driver={Micr
Windows 10 Pro 计算机上的 Excel 2016:我可以打开工作簿并从 DATA / From Other Sources / Data Connection Wizard / odbc
我正在尝试使用 System.Data.Odbc.OdbcConnection 查询 DBF 文件。当文件中没有空格时它可以正常工作,但如果文件路径或名称中有一个空格。 我正在使用以下代码: oCon
我正在使用 Microsoft Visual Web Developer 2010 Express 构建一个网页,该网页从数据库中提取数据以使用相关选项填充下拉列表。当我在开发人员中调试页面时,一切正
我有一个 .net 4.0 c# 应用程序,它需要一个 odbc 连接到 mssql 2008。该连接通常工作正常。但是当我运行一个通常运行几分钟的查询时(不,在项目的这一点上我无法优化查询运行时)我
我有一个 Excel 工作表,其中包含一个列表,该列表通过在宏中使用列表的 ODBC 连接填充,使用以下属性: ListObject.QueryTable.WorkbookConnection.ODB
我是一名优秀的程序员,十分优秀!