#c# #wpf
#c# #wpf
Вопрос:
Я пытаюсь создать приложение WPF для клиента, и требуется сервер SQL. В настоящее время я использую Visual Studio для разработки всего, но я никогда раньше не использовал SQL-серверы вне веб-приложения. Я добавляю новую базу данных SQL в свой проект WPF, добавляя «Базу данных на основе сервиса», и все работает нормально. Пока я не перенесу проект на другой компьютер, где он выходит из строя и выдает ошибку «System.Data.SqlClient.SQLException: база данных не найдена». Есть ли что-то, чего мне не хватает в настройке базы данных внутри моего проекта VS? Почему это работает только на моем компьютере для разработки, а не на любом другом, на который я его переношу?
Код, в котором происходит сбой:
string cn_string = Properties.Settings.Default.connection_String;
//Data Source=(LocalDB)MSSQLLocalDB;AttachDbFilename=|DataDirectory|_datadb_local.mdf;Integrated Security=True
string cmdString = "SELECT * FROM tbl_Clients";
using (SqlConnection con = new SqlConnection(cn_string))
{
SqlCommand cmd = new SqlCommand(cmdString, con);
SqlDataAdapter sda = new SqlDataAdapter(cmd);
DataTable dt = new DataTable("tbl_Clients");
sda.Fill(dt);
MyDataGrid.ItemsSource = dt.DefaultView;
}
Извините за мои простые вопросы, в настоящее время я изучаю программирование в средней школе. Спасибо за всю вашу помощь.
Комментарии:
1. Я предполагаю, что в настоящее время на вашем компьютере, где вы занимаетесь разработкой, фактически установлен sql Server. При переносе проекта на другой компьютер на этом компьютере, вероятно, не установлен sql Server, отсюда и ошибка о невозможности найти базу данных. Я бы посоветовал рассмотреть возможность использования SQLite, поскольку это файловая база данных, которую вы можете распространять с вашим приложением WPF
2. @TimRobinson Сначала я так и подумал, и я проверил, установлен ли у меня какой-либо SQL Server на моем компьютере разработчика — и у меня его нет. Когда я добавляю
service-based database
в свой проект WPF в VS, создается.mdf
файл, это файл базы данных?3. вам все еще необходимо установить SQL Server LocalDB на клиенте.
4. @vasily.sib Но у меня даже нет ее установленной на моем КОМПЬЮТЕРЕ разработчика, так как же я смог запустить и разработать приложение, если для этого требуется локальная база данных SQL Server?
5. .файлы mdf — это файлы базы данных для sql Server. Я все еще предполагаю, что часть вашей установки Visual Studio устанавливает какой-либо sql Server на вашем компьютере разработки и что эта установка не выполняется на новом компьютере, на который вы перемещаете файлы. Sql Server на самом деле не предназначен для переносимой базы данных, которую вы распространяете вместе с приложением. Для этого и нужен SQLite
Ответ №1:
Для использования базы данных на основе служб требуется настроить службу SQL Server на компьютере, на котором вы собираетесь запускать клиентское приложение WPF.
Если вам нужна встроенная база данных, которую вы можете xcopy развернуть в своем приложении, вам следует взглянуть на SQLite. В отличие от базы данных на основе сервисов, которую вы создаете в Visual Studio, она полностью автономна и не требует установки какой-либо службы.