2016-06-23 2 views
0

Я пытаюсь получить соединение из моего webapp в базу данных, чтобы получить значения для выпадающего списка, но почему-то всегда получаю ту же ошибку в con.Open. Сообщает, что сетевое имя не найдено!Ошибка при попытке подключения к локальному экземпляру

protected void Page_Load(object sender, EventArgs e) 
    { 
     if (!this.IsPostBack) 
     { 
      string query = "SELECT HobbyId, Hobby, IsSelected FROM Hobbies"; 
      //string constr = ConfigurationManager.ConnectionStrings["constr"].ConnectionString; 
      using (SqlConnection con = new SqlConnection("server=localhost/testserver; database=MyDB.dbo; integrated security=true")) 
      { 
       using (SqlCommand cmd = new SqlCommand(query)) 
       { 
        cmd.CommandType = CommandType.Text; 
        cmd.Connection = con; 
        con.Open(); 
        using (SqlDataReader sdr = cmd.ExecuteReader()) 
        { 
         while (sdr.Read()) 
         { 
          ListItem item = new ListItem(); 
          item.Text = sdr["Hobby"].ToString(); 
          item.Value = sdr["HobbyId"].ToString(); 
          item.Selected = Convert.ToBoolean(sdr["IsSelected"]); 
          ddlHobbies.Items.Add(item); 
         } 
        } 
        con.Close(); 
       } 
      } 
      ddlHobbies.Items.Insert(0, new ListItem("--Select Hobby--", "0")); 
     } 
    } 
+0

Опубликовать полное исключение, иначе можно только догадываться, что случилось. Полное исключение - это то, что вы получаете с помощью 'Exception.ToString()' и включает стек вызовов. –

+0

Является ли ваша база данных MyDB.dbo? В качестве теста подключитесь к мастеру. –

+0

Хотя сообщение, в котором указано, что имя сети не было найдено, - ** ОЧЕНЬ ЧИСТЫЙ **. Вы использовали неправильное имя сервера или IP-адрес. Или использовал '/' вместо '\' –

ответ

3

Вы должны использовать обратную косую черту (\) вместо прямой косой черты (/): server=localhost/testserver должен быть server=localhost\testserver.

Вы также можете заменить localhost простой точкой (.): server=.\testserver.

Убедитесь, что ваш экземпляр SQL-сервера фактически запущен. Вы можете открыть диспетчер конфигурации SQL Server, чтобы проверить это.

Вам также необходимо включить хотя бы один сетевой протокол для вашего экземпляра (например, именованные каналы, TCP/IP или общую память).

+0

пришлось использовать двойную обратную косую черту, но спасибо за ваш ответ :) – BlackPanic

Смежные вопросы