Bojjaiah Ответов: 4

Не удается запустить приложение. Файл информации о рабочей группе отсутствует или открыт исключительно другим пользователем


Всем привет,

Я пытаюсь подключить Ms-Access из c#, но он возвращает ошибку.

Можете ли вы сказать мне, где я ошибся?

connection_string = @"Provider=Microsoft.ACE.OLEDB.12.0;password=pass@word1;Data Source=C:\Users\bojjaiah\Documents\bojjaiah\Databases\college.accdb;";


ошибка:

Не удается запустить приложение. Файл информации о рабочей группе отсутствует или открыт исключительно другим пользователем

заранее спасибо.

4 Ответов

Рейтинг:
2

Anthony Githae

Эта ошибка вызвана 2 причины на мой взгляд
------------------------------------------------
1. С помощью ODBC пароль форматированную строку подключения вместо OleBD форматированную строку подключения.

интерфейс ODBC
ДСН=Organization_DB;по смыслу ВПВ=с:\DATAFOLDER\мни\mnitest\Org_Client_DB.# то#; driverid=25;Фил=МС доступа к ним;для maxbuffersize=2048;pagetimeout=5;uid=администратора;Фрд=хххххххх}

Эквивалент OleDB
Поставщик=Майкрософт.Туз.Oledb для.15.0;Источник данных=с:\DATAFOLDER\мни\mnitest\Org_Client_DB.# то#; идентификатор пользователя=администратор;для Jet oledb для:база данных шифровать=истина;для Jet oledb для:базы паролей=хххххххх"

2. Если база данных зашифрована в формате 2010-2013, установите флаг шифрования в строке подключения
Jet OLEDB:шифрование базы данных=True;

------------------------------------------------
После этого соединение должно работать просто отлично.

Это то, что сработало для меня.


Рейтинг:
2

Anthony Githae

У меня была эта проблема, и исправить ее было просто. Просто сжать и восстановить базу данных. Я использую Access 2013 Pro. Тогда попробуйте еще раз. Это сработало для меня. Похоже, что была внутренняя проблема с БД, которая была решена с помощью этого метода.


OriginalGriff

Хотя я аплодирую вашему стремлению помогать людям, это хорошая идея придерживаться новых вопросов, а не 8-летних. После такого количества времени маловероятно, что оригинальный плакат вообще заинтересован в проблеме больше!
Ответы на старые вопросы можно рассматривать как охоту за репостами, которая является формой злоупотребления сайтом. Более триггерные счастливые среди нас начнут процесс запрета вас с сайта, если вы не будете осторожны. Придерживайтесь новых вопросов, и все будет хорошо.

CHill60

Но год назад у вас было два разных решения, которые также якобы работали! Вместо того чтобы публиковать конфликтующие решения, вы должны использовать ссылку "улучшить решение" на вашем исходном решении для предоставления любых обновлений - как я уже говорил еще в марте 2019 года

Рейтинг:
1

Anthony Githae

Кроме того, вам необходимо создать экземпляры команд, адаптеров и соединений из правильного пространства имен Данные.Для oledb
Смотрите выдержки из рабочего решения ниже ( .. не полный класс)


Public Class ClientLogicOdbc
    Private DataBaseMessage As String
	Private CmdConnect As System.Data.OleDb.OleDbConnection
    Private CmdKPIList As System.Data.OleDb.OleDbCommand
    Private DaTable As System.Data.OleDb.OleDbDataAdapter
	Private TbKPIList As New System.Data.DataTable
    Private TbKPIRow As System.Data.DataRow
	
	Public Sub New()
      Client_Data_Logged = New ClientData
      DbConnectivity = DatabaseConnectivity.NotConnected
      ConnString = ReadConnectionSetting("CompanyConnectionOleDb")   
	  Call Connect()	  
    End Sub
	
	Private Sub Connect()
      Try
        CmdConnect = New System.Data.OleDb.OleDbConnection(ConnString)
        CmdKPIList = New System.Data.OleDb.OleDbCommand()
        CmdConnect.ConnectionString = ConnString
        CmdConnect.Open()
        DbConnectivity = DatabaseConnectivity.Connected
      Catch ex As Exception
        Me.LocalException = ex        
        Call RaiseErrorMessage(ex.Message, ex)
        DbConnectivity = DatabaseConnectivity.Faulted
        Debug.Print(ex.Message)
      End Try
    End Sub
	
	Public Function Company_File_Exists(ByVal ReportListing As ClientData) As Boolean
      Dim Found As Boolean = False
      Dim DatabaseMessage As String
      TbKPIList = New Data.DataTable
      If DbConnectivity = DatabaseConnectivity.Connected Then
        Try
          DatabaseMessage = "Select dbo_Company_Files.Imported From dbo_Company_Files where dbo_Company_Files.Filename='" & ReportListing.name & "' and dbo_Company_Files.startTime=#" & ReportListing.startTime.ToString("yyyy-MM-dd hh:mm:ss") & "# and dbo_Company_Files.EndTime=#" & ReportListing.endTime.ToString("yyyy-MM-dd hh:mm:ss") & "# ;"
          DaTable = New Data.OleDb.OleDbDataAdapter(DatabaseMessage, CmdConnect)
          DaTable.Fill(TbKPIList)
          TbKPIList.TableName = "dbo_Company_Files"

          If TbKPIList.Rows.Count > 0 Then
            Found = True
          End If
        Catch ex As Exception
          LocalException = ex
        Finally
          If Not TbKPIList Is Nothing Then
            TbKPIList.Clear()
            TbKPIList = Nothing
          End If
          If Not DaTable Is Nothing Then
            DaTable.Dispose()
            DaTable = Nothing
          End If
        End Try
      End If
      Return Found
    End Function
	
	
	Public Function ReadConnectionSetting(ByVal key As String) As String
      Dim result As String = ""
      Dim ConnStringSetting As System.Configuration.ConnectionStringSettings
      Try
        Dim app_Conn_Settings As System.Configuration.ConnectionStringSettingsCollection =
             System.Configuration.ConfigurationManager.ConnectionStrings

        ConnStringSetting = app_Conn_Settings(key)
        If IsNothing(ConnStringSetting) Then
          result = ""
        Else
          result = ConnStringSetting.ConnectionString
        End If
        
      Catch ex As System.Configuration.ConfigurationErrorsException

      End Try
      Return result
    End Function
	
End Class


CHill60

Знаете ли вы, что вы можете добавить информацию в свой пост, используя ссылку "улучшить решение" на вашем решении? Это предпочтительный подход, а не размещение нескольких решений одного вопроса (Что может привести к путанице, если один из них будет поднят/опущен, и они появятся не в той последовательности)

Рейтинг:
0

Member 10434230

Посмотрите на справку, предоставленную по адресу: http://social.msdn.microsoft.com/Forums/windows/en-US/2cdb0394-b757-4b4c-96e6-927100d8eebd/cannot-start-your-applicationthe-workgroup-information-file-is-missing-or-opened-exclusively-by[^]

Дайте нам знать, если это поможет.