Marc-IT Ответов: 4

Публикация приложения C# с SQL нет необходимости в SQL express


РЕДАКТИРОВАТЬ:

Спасибо всем за вклад.
К сожалению, у меня нет опыта в развертывании.
Кто-нибудь знает учебник для такого рода ситуаций?
Я использую viual studio 2015 и понятия не имею, с чего начать :\
Приложение готово, но я знаю, что мне придется перейти с sql на sqlite, вероятно, но не знаю, как это сделать


Спасибо

Привет,

У меня есть приложение winforms на C# , которое содержит базу данных sql.
После боли кодирования у меня теперь есть проблема.
Всякий раз, когда я публикую приложение, я должен установить SQL server express на всех клиентских компьютерах.
Разве это единственный выход? Как я могу сделать так, чтобы приложение было легко установить и чтобы единственными зависимостями были .net framework?

Еще одна вещь, которую я не знаю, нужно ли мне изменять, - это строка подключения, в моем случае она содержит полный путь к файлу, но на клиентском компьютере ее там не будет.

Заранее спасибо,

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

Моя строка:
ublic static SqlConnection con = new SqlConnection(@"Data Source=(LocalDB)\MSSQLLocalDB;AttachDbFilename=C:\Users\xxxxx\Documents\Visual Studio 2015\Projects\xxx\xxx\xx.mdf;Integrated Security=True;Connect Timeout=30");

4 Ответов

Рейтинг:
9

Mohtshm Zubair

У вас есть возможность использовать файл sqllite и MS-Access db.

Но помните, что ограничения всегда есть.


Afzaal Ahmad Zeeshan

MS Access еще хуже, им тоже потребуется лицензия на Office.

Dave Kreskowiak

Установка только компонента database engine не требует лицензии Office.

Marc-IT

Теперь, когда вся работа выполняется на SQL, было бы сложно перейти на sqlite.
База данных очень проста. только 3 таблицы одна из них временная и должна быть усечена при каждом использовании, она должна содержать изображения и быть доступна отчету в crystal reports

Dave Kreskowiak

и что именно это означает? Это нисколько не меняет ответов. Если у вас используется SQL сервер на всех, ты вынужден использовать, чтобы установить соответствующую версию сервера SQL. Все так просто. Что такое база данных и насколько она велика, не имеет никакого отношения к тому, нужно ли вам устанавливать какую-то версию SQL Server.

Теперь, если вы переключитесь на неустановленный компонент SQL database engine, да, вам придется переработать свою базу данных и код в вашем приложении, чтобы использовать новый компонент database engine.

Рейтинг:
35

#realJSOP

Если ваше приложение использует SqlServer, нет никакого способа обойти требование пользователя установить какую-либо форму Sql Server, так что...


Добавьте SqlServer Express в зависимости вашего установщика...

- ИЛИ -

Подумайте о том, чтобы вместо этого использовать SqlLite. Имейте в виду, что" lite " означает именно то, что вы ожидаете - ограничения на то, что вы можете сделать и сколько данных у вас может быть, но установка должна быть намного менее болезненной. Я не знаю точно, каковы эти ограничения,но вы должны быть в состоянии погуглить его.


Рейтинг:
2

Kornfeld Eliyahu Peter

Пока вы используете SQL (или любую другую БД, если на то пошло) из своего приложения, этот SQL должен быть представлен (каким-либо образом подходит) на целевом компьютере (если вы выбираете локальную БД вместо сервера БД)...
Лучшее решение - сделать установку частью процесса настройки приложения в виде зависимости...
Проверить это:
Как создать или добавить проект установки[^]
Как установить необходимые компоненты в развертывании установщика Windows[^]
Пошаговое руководство: использование пользовательского действия для создания базы данных при установке[^]


Рейтинг:
1

OriginalGriff

Здесь три вещи:
1) никогда не используйте жесткие кодовые строки подключения: они всегда должны быть в конфигурационных файлах, где их можно изменить в соответствии с рабочей средой.
2) не подключайте базы данных в производственных единицах - это функция разработки, которая существует только для SQL Express, а не в полной версии.
3) Если вы закодировали для SQL server, то вам нужен SQL server, установленный где-то, к чему компьютер может получить доступ, чтобы использовать БД: это серверная система и не может работать автономно (т. е. без установленного, доступного и запущенного сервера).

Если вы не хотите, чтобы SQL server находился в клиентской среде, используйте автономную базу данных, такую как Access или SqLite, но имейте в виду, что они плохо работают, если вам нужен многопользовательский доступ к вашей базе данных.