#c# #sql #wcf
#c# #sql #wcf
Вопрос:
Я столкнулся с проблемой с моим подключением к базе данных. Я начал с нового пустого решения, затем добавил проект библиотеки WCF и последнее, но не менее важное — веб-сайт (сервис) WCF. На веб-сайте я добавил ссылку на библиотеку, где у меня есть интерфейс (контракт данных), класс, который реализует интерфейс, и классы данных. что я пытаюсь сделать, так это подключиться к базе данных на сервере и попытаться извлечь оттуда некоторые данные. Итак, строка подключения выглядит следующим образом:
<add name="myConnectionString" connectionString="Data Source=MyServer; Initial Catalog=MyDatabase; User Id=me; Password=me123;" providerName="System.Data.SqlClient" />
и вот как я пытаюсь подключиться к базе данных:
public List<string> GetEngagements(string id)
{
string sql = "SELECT myColumn FROM myTable WHERE Id = '" id "'";
string connString = string.Empty;
SqlConnection connDB;
connString = ConfigurationManager.ConnectionStrings["myConnectionString"].ConnectionString;
connDB = new SqlConnection(connString);
SqlCommand command = new SqlCommand(sql, connDB);
connDB.Open();
SqlDataReader rdr = command.ExecuteReader();
List<string> numbers = new List<string>();
while (rdr.Read())
{
numbers.Add(rdr[0].ToString());
}
rdr.Close();
return numbers;
}
Я получаю исключение в connDB.Open ().
Затем сообщение об исключении гласит:
Не удалось сгенерировать пользовательский экземпляр SQL Server из-за сбоя при запуске процесса для пользовательского экземпляра. Соединение будет закрыто.
Я получаю это сообщение уже 2 дня, я много гуглил и удалил C:Documents и Настройки имя пользователя Локальные настройки Данные приложения Microsoft Данные Microsoft SQL Server Каталог SQLEXPRESS, но у меня это не сработало..
Есть решение???? помогите, пожалуйста
Комментарии:
1. Если вы зайдете в свою панель управления> административные инструменты> службы, вы должны увидеть свой sql server express. Это запущено? иногда это просто что-то вроде этого, всем приятного времяпрепровождения 🙂
Ответ №1:
Сообщение об ошибке:
Не удалось сгенерировать пользовательский экземпляр SQL Server из-за сбоя при запуске процесса для пользовательского экземпляра.
Предполагает, что вы используете создание экземпляра пользователя, и поэтому ваша строка подключения будет указывать на .mdf
файл на диске, а не на имя базы данных.
Итак, я предположу, что вы хотите подключиться к файловому экземпляру, а не к экземпляру сервера.
Я также предположу, что вы используете SqlExpress, а не полную версию fat.
В этом случае ваша строка подключения неверна. Это должно выглядеть примерно так:
"Data Source=.SQLEXPRESS;
AttachDbFilename=fileOnDisk.mdf;
Integrated Security=True;
User Instance=True;"
Создание экземпляра пользователем означает, что этот экземпляр сервера и база данных внутри будут видны только приложению, открывающему строку подключения.
Вам не обязательно использовать создание экземпляра пользователя — вы можете установить User Instance=False
или просто не использовать это. Затем, как только приложение установит соединение, вы можете подключить другие инструменты к экземпляру сервера и самостоятельно подключиться к базе данных.