#c_sharp #база_данных #access
База данных в access, .mdb (97-2003г)
При подключении к базе данных использую следующую конструкцию
public OleDbConnection con1 = new OleDbConnection();
public OleDbCommand cmd1 = new OleDbCommand();
public void loadDb()
{
con1.ConnectionString = Data.connectionString;
cmd1.Connection = con1;
}
где
Data.connectionString = "Provider=Microsoft.ACE.OLEDB.12.0;Data Source=|DataDirectory|\\db.mdb";
Проверяю, есть ли подключение таким способом:
public bool checkCon(OleDbConnection con)
{
try
{
con.Open();
con.Close();
return true;
}
catch
{
return false;
}
}
На моем пк подключение работает исправно. У преподавателя пишет, что не может цепануться
к бд. (Но у него Access есть на компьютере, однако отсутствует visual)
У знакомых некоторых цепляется (у них тоже установлен acess, visual studio)
У других подключение не создается. (нет access"a, нет visual studio)
Собственно, как быть?
Быть может ConnectionString изменить? Использовать более старые драйвера или как.
Ответы
Ответ 1
Вроде как сам разрешил проблему, корявенько конечно, ну как умею %) Для начала воспользовался информацией про connectionString https://www.connectionstrings.com/access/ Затем, Data.connectionString у меня формируется таким способом: StreamReader s = File.OpenText(Application.StartupPath + "\\path.txt"); Data.connectionString = s.ReadLine(); s.Close(); Data.connectionString = Data.connectionString + Application.StartupPath + "\\db.mdb"; Где path.txt содержит одну строку: Provider=Microsoft.Jet.OLEDB.4.0;Data Source=Ответ 2
Так у Вас в решении ответ на Ваш вопрос. Если Вы в первом случае измените "Provider=Microsoft.ACE.OLEDB.12.0" на "Provider=Microsoft.Jet.OLEDB.4.0" все должно работать. В первом случае вы указываете что у Вас Access 2012 (по-моему, если не ошибаюсь), а во-втором (Jet.OLEDB.4.0) Вы указываете на Access 97-2003. Начиная с Access 2007 там большие изменения произошли.... Я боюсь напутать в версиях, но Microsoft.ACE.OLEDB.12.0 ставится, по-моему, с Net.Framework 4.5..., а Microsoft.Jet.OLEDB.4.0 стоит даже на ХР.
Комментариев нет:
Отправить комментарий