Я прикрепляю файл моей базы данных (.mdf) к моему приложению. Этот файл находится в папке bin \ debug \ database. Но когда я создаю установочный файл и устанавливаю свое приложение на другие компьютеры, у меня есть некоторая ошибка при подключении к базе данных, например: «для выполнения несанкционированной операции», «доступ запрещен» или «Database_log.mdf» ... Мой app.config:Не удалось подключиться к базе данных SQL
<?xml version="1.0"?>
<configuration>
<configSections>
</configSections>
<connectionStrings>
<add name="XtopazConnectionString"
connectionString="Data Source=.;AttachDbFilename=|DataDirectory|\Database\XTOPAZ.mdf;Initial Catalog=XTOPAZ;Integrated Security=True"
providerName="System.Data.SqlClient" />
</connectionStrings>
<startup>
<supportedRuntime version="v4.0" sku=".NETFramework,Version=v4.0"/>
</startup>
</configuration>
Моя строка соединения и подключения функции:
public static void openConnect()
{
try
{
if (File.Exists(Application.StartupPath + @"\Database\XTOPAZ.mdf"))
{
if (File.Exists(Application.StartupPath + @"\Database\XTOPAZ_log.ldf")) //delete current ldf file if it existed
{
File.Delete(Application.StartupPath + @"\Database\XTOPAZ_log.ldf");
}
string s = ConfigurationManager.ConnectionStrings["XtopazConnectionString"].ConnectionString;
//Set full permisstion access for database file
DirectoryInfo dInfo = new DirectoryInfo(Application.StartupPath + @"\Database\XTOPAZ.mdf");
DirectorySecurity dSecurity = dInfo.GetAccessControl();
dSecurity.AddAccessRule(new FileSystemAccessRule(new SecurityIdentifier(WellKnownSidType.WorldSid, null), FileSystemRights.FullControl, InheritanceFlags.ObjectInherit | InheritanceFlags.ContainerInherit, PropagationFlags.NoPropagateInherit, AccessControlType.Allow));
dInfo.SetAccessControl(dSecurity);
dInfo.SetAccessControl(dSecurity);
con.ConnectionString = s;
con.Open();
}
else
{
Exception ex;
ex = new Exception("Database file not found");
throw ex;
}
}
catch (Exception ex)
{
MessageBox.Show("Error occured when trying to connect to database\r\nDetail: " + ex.Message, "Error", MessageBoxButtons.OK, MessageBoxIcon.Error);
}
Так как я могу создать свой файл и установить приложение на другие компьютер без каких-либо ошибок?
отправить изображение вашего решения и показать, где находится файл .mdf. –
Не знаете, почему вы пытаетесь удалить файл LDF. Кажется, это не правильный ход. – Steve
@Steve, я пытаюсь удалить файл ldf, потому что при открытии соединения с базой данных появляется ошибка «Database_log.mdf». Я не знаю, почему, но когда я удаляю его, эта ошибка исчезает. –