Abhilash.J.A Ответов: 1

Как заставить мое приложение .NET работать от имени администратора также получить доступ к sqlite?


I have create Set up file for WPF application and the database is SQLite DB. After the installation the SQLite DB is located this path in C folder, and the application is running properly on any computer that without an administrator Password PC.

C:\Program Files (x86)\myCompany\myScanApp.


public SQLiteConnection dbConnection = new SQLiteConnection(@"Data Source=C:\Program Files (x86)\myCompany\myScanApp\test.s3db;");


The problem is, it is failing to login after running this application if any other administrator password set PC. How can I solve this problem?

How can I access Sqlite DB from C drive after installation WPF application if pc have administrator password ?


Что я уже пробовал:

Я использую эту строку подключения:-

public SQLiteConnection dbConnection = new SQLiteConnection(@"Data Source=C:\Program Files (x86)\myCompany\myScanApp\test.s3db;");

Abhilash.J.A

Пожалуйста, посоветуйте мне правильные решения

[no name]

Вам нужно хранить файл базы данных где-то еще, кроме "Program files"

1 Ответов

Рейтинг:
0

Dave Kreskowiak

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

Правильное решение - поместить вашу базу данных в более подходящую папку, например C:\ProgramData\компания\имя_приложения. Это место является ReadWrite для всех. Вам также придется изменить строку подключения, чтобы указать на нее там.


Abhilash.J.A

Привет,

Как я могу создать новый путь к базе данных следующим образом: (C:\ProgramData\company\appName\test.s3db) во многих других локальных механизмах, которые запускают это приложение windows с использованием кода c#?

Dave Kreskowiak

Взгляните на свою собственную машину на то, что находится под тропой C:\ProgramData. Посмотрите, как там обычно располагаются файлы и папки. Ваш файл базы данных должен быть помещен в известный путь под этой папкой, которую вы придумали. Ваш установщик должен поместить туда файл базы данных.

Как только у вас есть этот известный путь, вы можете построить свою строку подключения, используя вызов Environment.GetFolderPath(SpecialFolder.CommonApplicationData) и Path.Combine() Прочтите документацию по обоим методам, чтобы увидеть, что они делают.

Это очень простая манипуляция строками. Вы создаете путь из хорошо известной папки, добавляя имена папок company и appname, которые вы придумали, и имя вашей базы данных. Эта строка входит в вашу строку подключения в коде. Опять же, очень простая манипуляция строками. Вы можете поместить какой-нибудь заменяемый тег в строку подключения и после построения пути к файлу базы данных заменить этот тег своим путем к файлу.