您可以使用自定义包装器来管理连接,但此包装器不应管理命令:this.Command
.由于命令对象存储在您的包装器中,因此它将被重用.问题是第一次调用ExeuteReader
此命令时会被释放,第二次调用它时会出现异常.尝试为每个查询创建命令:
public bool DatabaseConnected(string databasePath) { if (ConnectionOpen()) { using (var command = YourSQLiteConnection.CreateCommand()) { command.CommandText = string.Format(DATABASE_QUERY); using (reader = command.ExecuteReader()) { while (reader.Read()) { if (string.Compare(reader[FILE_NAME_COL_HEADER].ToString(), databasePath, true) == 0) { return true; } } } } } return false; }