Я создаю приложения для форм Windows C#, работа может быть скомпонована, поскольку пользователи заполняют какую-либо форму, а данные сохраняются в базе данных Access. Теперь проблема, с которой я сталкиваюсь, заключается в том, что я должен предоставить это как файл установки кому-то. Я думаю, что код, однажды установленный на других компьютерах и выполненный, даст ошибки из-за строки подключения Access db, поскольку он не будет соответствовать этому компьютеру. Я знаю, что если распределять проекты, я могу установить строку подключения в app.config, и каждый пользователь может изменить ее в соответствии с его/ее машиной. Но поскольку я даю файл установки, как решить эту проблему.Изменение строки подключения после создания файла установки на C# .NET
ответ
Вы можете построить ConnectionString
во время выполнения с помощью SqlConnectionStringBuilder
// Create a new SqlConnectionStringBuilder and
// initialize it with a few name/value pairs.
SqlConnectionStringBuilder builder =
new SqlConnectionStringBuilder(GetConnectionString());
// The input connection string used the
// Server key, but the new connection string uses
// the well-known Data Source key instead.
Console.WriteLine(builder.ConnectionString);
// Pass the SqlConnectionStringBuilder an existing
// connection string, and you can retrieve and
// modify any of the elements.
builder.ConnectionString = "server=(local);user id=ab;" +
"password= a!Pass113;initial catalog=AdventureWorks";
// Now that the connection string has been parsed,
// you can work with individual items.
Console.WriteLine(builder.Password);
builder.Password = "[email protected]";
builder.AsynchronousProcessing = true;
// You can refer to connection keys using strings,
// as well. When you use this technique (the default
// Item property in Visual Basic, or the indexer in C#),
// you can specify any synonym for the connection string key
// name.
builder["Server"] = ".";
builder["Connect Timeout"] = 1000;
builder["Trusted_Connection"] = true;
Console.WriteLine(builder.ConnectionString);
Console.WriteLine("Press Enter to finish.");
Console.ReadLine();
Edit: вы можете использовать это: Finding SQL Servers on the Network
Это база данных Access, к которой они подключаются, а не SQL Server. – cjk
MS Access DB - это ODBC/OLEDB. Тогда выше будет работать, просто измените строку подключения. –
Я встретил эту проблему раньше. Я решаю его таким образом.
(1) в файле app.config, поместите заполнитель в строку соединения. строка подключения будет содержать путь к файлу доступа db. замените путь специальной строкой.
<connectionStrings>
<!-- original connection string , change it to the below line -->
<!-- <add name="test" connectionString="Provider=Microsoft.Jet.OLEDB.4.0; Data Source=d:\test\test.mdb "/> -->
<add name="test" connectionString="Provider=Microsoft.Jet.OLEDB.4.0; Data Source=##path##\test.mdb "/>
</connectionStrings>
(2) Когда приложение запускается, используйте Directory.GetCurrentDirectory, чтобы получить путь к приложению. , прежде чем создать соединение, замените ## путь ## на фактический путь на клиентском компьютере.
static void test()
{
string s = ConfigurationManager.ConnectionStrings["test"].ConnectionString;
s.Replace("##path##", Directory.GetCurrentDirectory());
OleDbConnection conn = new OleDbConnection(s);
}
Предположим, что вы развернуть app.config с этим ConnectionString
"Provider=Microsoft.ACE.OLEDB.12.0;Data Source=|DataDirectory|\yourFile.accdb;"
В приложении WinForms |DataDirectory|
ярлык представлять вашу рабочую папку приложения, но вы можете изменить во время выполнения, когда он указывает на использование этого код.
// appdomain setup information
AppDomain currentDomain = AppDomain.CurrentDomain;
//Create or update a value pair for the appdomain
currentDomain.SetData("DataDirectory", "Your user choosen path");
Это устраняет необходимость в жестком коде полный путь, который имеет вы обнаружили, приводит к ряду проблем для решения во время установки. Конечно, ваша настройка должна доставить вашу базу данных в выбранном вами пользователем пути.
но что, когда у нас есть SQL-сервер? Он содержит имя экземпляра в соответствии с именем компьютера. – Freelancer
Если вы распространяете файл MDF самостоятельно, вы должны попробовать с атрибутом AttachDbFileName как [объяснено здесь] (http://msdn.microsoft.com/en-us/library/ms247257 (v = VS.80) .aspx), но если у вас уже установлена база данных, вы можете попробовать с помощью настраиваемой процедуры настройки, которая запрашивает хост-источник данных. С другой стороны, вы можете добавить параметр конфигурации в свою программу, который запрашивает после установки этой информации вашему пользователю и перенастроить строку подключения. – Steve
. Я прикрепляю DB только с помощью приложения db. Но если на моей машине экземпляр./ SQLExpress, а на других иногда может отличаться в зависимости от имени компьютера, такого как steve/SQLExpress или любого другого. Это полностью зависит от имени экземпляра [имя сервера в строке подключения] в этом случае, что нам делать? – Freelancer
- 1. Изменение строки подключения после развертывания
- 2. Изменение строки после подключения WM_SETTEXT
- 3. C# Изменение строки после ее создания
- 4. Как изменить строку подключения после создания проекта установки?
- 5. C++ - изменение файла без создания нового файла
- 6. Изменение gcc OCaml после установки
- 7. Изменение строки подключения в программном обеспечении C#
- 8. Изменение строки подключения соединения
- 9. Каков формат строки подключения .NET?
- 10. Тестирование создания файла Wrapper C# .Net - Мысли
- 11. Перетащите Drop на рабочий стол после создания файла? (C#)
- 12. Изменение строки подключения Entity ошибки
- 13. error- Добавление строки подключения во время установки C# Project.exe
- 14. Microsoft.DotNet.Web.targets отсутствует после установки .NET Core RTM
- 15. Сбой приложения C# .NET сразу после запуска
- 16. сбой подключения к базе данных после создания файла jar
- 17. Ошибка строки подключения Mysql .NET
- 18. Изменение строки подключения в App.config После установки приложения & приложения должны принять изменения манды в конфигурационном файле
- 19. Даты создания файлов Windows на C#. NET
- 20. добавление строки подключения во время установки vb.net
- 21. Копирование файла после создания каталогов в C#
- 22. Изменение атрибута на фабрике после создания записи
- 23. Изменение файлов после установки Bower
- 24. Изменение строки подключения после перемещения базы данных в папку App_Data?
- 25. Изменение UITableViewCell Высота после создания
- 26. Изменение объектов ggplot после создания
- 27. Изменение строки подключения в LINQ-SQL
- 28. проблема установки .net 3.5
- 29. Изменение области строки подключения app.config в vb.net
- 30. Изменение столбцов после создания листа
Это хоть один ... Я пробовал это раньше, но не смог его выполнить. Попробуйте [** этот пользовательский создатель диалога **] (http://www.codeproject.com/Articles/18834/Create -custom-dialogs-for-use-in-your-Visual-Studi), возможно, отправная точка. Удачи и, пожалуйста, отправьте ответ, как только вы его получите. –
Можете ли вы показать конфигурационный файл приложения с настройкой в начале> Все программы? – Sunny