#c# #sql-server #web-services #visual-studio-2010
#c# #sql-сервер #веб-сервисы #visual-studio-2010
Вопрос:
У меня есть база данных в файле C:UsersPawelDocumentsDB.sdf
. Как я могу подключиться к ней?
Приведенный ниже простой код не работает и генерирует исключение.
Код:
[WebMethod]
public String TestCon()
{
SqlConnection sql = new System.Data.SqlClient.SqlConnection(
@"Data Source=C:UsersPawelDocumentsDB.sdf");
string str = "OK";
try
{
sql.Open();
sql.Close();
}
catch (Exception ex)
{
str = ex.Message;
}
return str;
}
Результат:
A network-related or instance-specific error occurred while establishing a connection to SQL Server. The server was not found or was not accessible. Verify that the instance name is correct and that SQL Server is configured to allow remote connections. (provider: SQL Network Interfaces, error: 26 - Error Locating Server/Instance Specified)
Чего я не понимаю? Что я должен сделать, чтобы правильно открыть соединение?
Редактировать:
System.NotSupportedException: SQL Server Compact is not intended for ASP.NET development.
Отлично: P
Комментарии:
1. Используете ли вы SqlCompact? Мне кажется, вы используете обычный SQL-клиент
Ответ №1:
Рассмотрите возможность использования System.Data.SqlServerCe.SqlCeConnection
:
System.Data.SqlServerCe.SqlCeConnection con =
new System.Data.SqlServerCe.SqlCeConnection(@"Data Source=C:UsersPawelDocumentsDB.sdf");
(При необходимости добавьте ссылку на System.Data.SqlServerCe)
Кроме того, чтобы использовать его с ASP.NET , добавить:
AppDomain.CurrentDomain.SetData("SQLServerCompactEditionUnderWebHosting", true);
Комментарии:
1. Тип или имя пространства имен ‘SqlServerCe’ не существует в пространстве имен ‘System.Data’ (вам не хватает ссылки на сборку?)
2. Да, вы должны добавить ссылку на сборку System.Data.SqlServerCe.
3. Вы должны добавить ссылку на System.Data.SqlServerCe в свой проект. (Щелкните правой кнопкой мыши «Ссылки» в обозревателе решений, «Добавить ссылку», остальное просто)
4. Прочитайте эту ссылку: forums.asp.net/p/1565425/3898581.aspx Похоже, что парень решил проблему
Ответ №2:
По-видимому, вы используете SQL Compact Edition (sdf-файл). Вы пробовали использовать SqlCeConnection
вместо SqlConnection
?
В качестве бонуса: если вы больше не хотите возиться со строками подключения, пожалуйста, попробуйте это.
Сделайте это, вам нужно добавить ссылку на System.Data.SqlServerCe
assembly.