要求已打开且可用的 Connection。连接的当前状态为已关闭。

C#使用OleDB操作ACCESS Provider=Microsoft.Jet.OLEDB.4.0;Data Source=” + NewFileName + “;User Id=uid;Jet OLEDB:Database Password=pwd;”;

完整错误信息: {System.InvalidOperationException: ExecuteScalar 要求已打开且可用的 Connection。连接的当前状态为已关闭。 在 System.Data.OleDb.OleDbConnection.CheckStateOpen(String method) 在 System.Data.OleDb.OleDbCommand.ValidateConnection(String method) 在 System.Data.OleDb.OleDbCommand.ValidateConnectionAndTransaction(String method) 在 System.Data.OleDb.OleDbCommand.ExecuteReaderInternal(CommandBehavior behavior, String method) 在 System.Data.OleDb.OleDbCommand.ExecuteScalar() 在 Public.DB.CheckTableIfExist(String tablename, String condition) 位置 Public\DB.cs:行号 136 在 MyIni.GetCompanyName() 位置 Program.cs:行号 293 在 Program.Main() 位置 Program.cs:行号 734}

错误原因: 连接的当前状态为已关闭。或者只创建了Connection对象,没有调用 Connection.Open()方法; 也就是:connection.State != ConnectionState.Closed

解决方法: 调用Connection.Open()方法; 或者添加判断,,例如下面的代码:

if (MyIni.Gs_con.State != ConnectionState.Closed) {OleDbCommand mysc = new OleDbCommand(sqltext, MyIni.Gs_con);//tools.MB(sqltext);result = tools.fieldnullint(mysc.ExecuteScalar());if (result == 0) return false; }

钱财何足贵,仁义值千金。

要求已打开且可用的 Connection。连接的当前状态为已关闭。

相关文章:

你感兴趣的文章:

标签云: