Не удается найти локальную базу данных в проекте WPF в Visual Studio

Я пытаюсь создать приложение 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|\_data\db_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;
}

Извините за мои простые вопросы, в настоящее время я изучаю программирование в старшей школе. Спасибо за вашу помощь.

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

Tim Robinson 08.04.2019 05:43

@TimRobinson Сначала я так подумал и проверил, установлен ли какой-либо SQL-сервер на моем ПК для разработки, но его нет. Когда я добавляю service-based database в свой проект WPF в VS, он создает файл .mdf, это файл базы данных?

Lachlan Mather 08.04.2019 05:45

вам все еще нужно установить SQL Server LocalDB на клиенте.

vasily.sib 08.04.2019 05:47

@vasily.sib Но он даже не установлен на моем компьютере для разработчиков, так как же я смог запустить и разработать приложение, если для него требуется SQL Server LocalDB?

Lachlan Mather 08.04.2019 05:48

Файлы .mdf — это файлы базы данных для сервера sql. Я все еще предполагаю, что часть вашей установки Visual Studio устанавливает какой-то сервер sql на вашем компьютере для разработки и что эта установка не на новом компьютере, на который вы перемещаете файлы. Сервер Sql на самом деле не предназначен для использования в качестве переносимой базы данных, которую вы будете распространять вместе с приложением. Вот для чего нужен SQLite

Tim Robinson 08.04.2019 05:49

@LachlanMather, вы устанавливаете его с помощью Visual Studio

vasily.sib 08.04.2019 05:49

@TimRobinson О.К. спасибо, что объяснил мне это. Я не знал, что VS также установил SQL.

Lachlan Mather 08.04.2019 05:51
Стоит ли изучать PHP в 2023-2024 годах?
Стоит ли изучать PHP в 2023-2024 годах?
Привет всем, сегодня я хочу высказать свои соображения по поводу вопроса, который я уже много раз получал в своем сообществе: "Стоит ли изучать PHP в...
Поведение ключевого слова "this" в стрелочной функции в сравнении с нормальной функцией
Поведение ключевого слова "this" в стрелочной функции в сравнении с нормальной функцией
В JavaScript одним из самых запутанных понятий является поведение ключевого слова "this" в стрелочной и обычной функциях.
Приемы CSS-макетирования - floats и Flexbox
Приемы CSS-макетирования - floats и Flexbox
Здравствуйте, друзья-студенты! Готовы совершенствовать свои навыки веб-дизайна? Сегодня в нашем путешествии мы рассмотрим приемы CSS-верстки - в...
Тестирование функциональных ngrx-эффектов в Angular 16 с помощью Jest
В системе управления состояниями ngrx, совместимой с Angular 16, появились функциональные эффекты. Это здорово и делает код определенно легче для...
Концепция локализации и ее применение в приложениях React ⚡️
Концепция локализации и ее применение в приложениях React ⚡️
Локализация - это процесс адаптации приложения к различным языкам и культурным требованиям. Это позволяет пользователям получить опыт, соответствующий...
Пользовательский скаляр GraphQL
Пользовательский скаляр GraphQL
Листовые узлы системы типов GraphQL называются скалярами. Достигнув скалярного типа, невозможно спуститься дальше по иерархии типов. Скалярный тип...
2
8
279
1
Перейти к ответу Данный вопрос помечен как решенный

Ответы 1

Ответ принят как подходящий

Использование базы данных на основе служб требует, чтобы вы установили службу SQL Server на компьютере, на котором вы собираетесь запускать клиентское приложение WPF.

Если вам нужна встроенная база данных, которую вы можете развернуть с помощью xcopy вместе с вашим приложением, вам следует взглянуть на SQLite. В отличие от базы данных на основе служб, которую вы создаете в Visual Studio, она полностью автономна и не требует установки каких-либо служб.

Другие вопросы по теме