[c#+MSSQL]Problem z połączeniem

0

Zainstalowałem MSSQL Server 2005 Express Edition oraz ściągnąłem ze strony Microsoftu bazę northwind. Następnie w aplikacji MSSQL Server Managment Studio dodałem bazę za pomocą funkcji Attach...

Teraz próbuje połączyć się z tą bazą za pomocą takiego kodu:

using System;
using System.Collections.Generic;
using System.ComponentModel;
using System.Data;
using System.Data.SqlClient;
using System.Drawing;
using System.Windows.Forms;

namespace WindowsFormsApplication1
{
    public partial class Form1 : Form
    {
        public Form1()
        {
            InitializeComponent();

            string connectionString = "server=localhost;" +
                "Trusted_Connection=yes; database=northwind";

            string commandString = "Select CompanyName, ContactName from Customers";

            SqlDataAdapter DataAdapter = new SqlDataAdapter(commandString, connectionString);

            DataSet DataSet = new DataSet();

            DataAdapter.Fill( DataSet, "Customers");

            DataTable dataTable = DataSet.Tables[0];

            foreach (DataRow dataRow in dataTable.Rows)
            {
                lbCustomers.Items.Add(dataRow["CompanyName"] + "(" + dataRow["ContactName"] + ")");
            }
        }
    }
}

Niestety nie działa. Otrzymuję komunikat: Wystąpił błąd podczas ustanawiania połączenia z serwerem. Podczas łączenia się z programem SQL Server 2005 przyczyną tego błędu może być fakt, że zgodnie z ustawieniami domyślnymi program SQL Server nie pozwala na połączenia zdalne. (provider: Dostawca nazwanych potoków, error: 40 - Nie można otworzyć połączenia z programem SQL Server)

Czy ktoś mógłby mi coś poradzić?

0

Rozwiązanie:
w connectionString należało jako serwer dać .\SQLEXPRESS a nie localhost

Mała rzecz a ile nerwów.

0

A dokladniej localhost\SQLEXPRESS, kropka (.) to odpowiednik localhost :) Serwer instaluje sie domyslnie jako instancja o nazwie SQLEXPRESS, stad ten ciag w nazwie.

0

ja nie ściągnęłam żadnej bazy i nie używam żadnego kodu do połączenia z bazą ale przy próbie połączenia z serwerem otrzymuję ten sam komunikat co mam zrobić w tej sytuacji? [???]

0

Przy tak duzej ilosci szczegolow to moge Ci powiedziec, ze masz blad polaczenia :D

PS. Skoro nie uzywasz zadnego kodu do polaczenia z baza to jakim cudem wystepuje proba polaczenia? :>

0

a jakich szczegółów oczekujesz? odpalam ms sql studio management express i w okienku w którym łączę się z serwerem pojawia się okienko połączenia w którym wpisuję nazwę serwera z którym chcę się połączyć, wybieram opcję SQL Serwe Authentication, podaję login i hasło i pojawia mi się komunikat:

An error has occurred while establishing a connection to the server. When connecting to SQL Server 2005, this failure may be caused by the fact that under the default settings SQL Server does not allow remote connections. (provider: Named Pipes Provider, error: 40 - Could not open a connection to SQL Server) (Microsoft SQL Server, Error: 53)

bardziej szczegółowo się już nie da...

0

No popatrz, a jednak sie da ;) Po Twojej wczesniejszej wypowiedz moglem strzelac, czy baza jest u Ciebie, czy w Stanach na serwerze kolegi, czy laczysz sie za pomoca aplikacji pochodzacej z Niemiec, czy moze napisanej przez Hindusa...
EOI (End Of Irony)

Zakladam, ze:

  1. masz zainstalowany serwer bazy danych SQL Server 2005 [Express]
  2. uruchomiona jest instancja tego serwera - Start/Uruchom/services.msc i szukasz uslug zaczynajacych sie na Sql Server
  3. wpisujesz poprawna nazwe serwera - podaj co wybralas przy instalacji czy domyslna nazwe(SQLEXPRESS), czy inna. Mozesz je sprawdzic w uslugach rowniez
  4. masz wlaczone Sql Server authentication (rowniez przy instalacji)
  5. istnieje uzytkownik, ktorego login i haslo podajesz

Przy spelnionych powyzszych warunkach powinno byc ok. Jak nie to napisz, pomyslimy dalej.

0

w usługach nie mam nic co by zawierało w sobie nazwę SQL, więc może zacznijmy od tego... jakie mogą przyczyny?

0

już chyba wiem w czym tkwi problem jak uda mi się go rozwiązać dam znać ;-)

0

Na pewno instalowalas silnik bazy? Samo Sql Management Studio sluzy tylko do zarzadzania serwerem bazy danych. Serwer instaluje sie osobno. Po instalacji usluga powinna zostac dodana do listy. Zatem albo nie masz zainstalowanego serwera albo wystapil blad w instalacji (ale to raczej instalator by krzyczal, ze cos nie tak).

0

Problem jest dosyć prosty wejdź w menu wszystkie programy ms sql server tam masz uslugi
wydaje mi sie ze po prostu obrales opcje wlaczania recznie tych uslug. Przestaw je na auto lub pamietaj, ze jesli chcesz korzystac z MSSQL musisz miec uruchomiona usluge. Jesli posiadasz Visual Studio Pro version to wtedy masz server explorer sproboj polaczyc sie z baza jesli pojdzie to wtedy przejdz do swojego kodu, bo z pewnoscia cos tam machnoles. W tej chwili na razie go nie czytalem

0

mam zainstalowane: Microsoft .NET Framework 2.0 SP1 , Microsoft SQL Server Management Studio Express, MSXML 6.0 Parser oraz SQL2005 Service Manager a w usługach nadal nic nie ma związanego z sql...

0

No to pozostaje sedno tematu, czyli Sql Server 2005, np. stad

0

sedno nie zadziałało wszystkie usługi związane z sql są uruchomione - nawet odinstalowałam antywirusa - dla pewności - nadal ten sam błąd [glowa] masz jeszcze inne pomysły?

0

Czyli sam serwer jest zainstalowany? Jaka jest instancja serwera? Z pomyslow na szybko to wejdz w Sql Server Configuration Manager/Network Configuration/instancja serwera i wlacz TCP/IP. Nastepnie zrestartuj usluge tej samej instancji. Pozniej start/uruchom/cmd i telnet localhost 1433 - na tym porcie powinien nasluchiwac serwer (czyli telnet sie polaczy z nim).

Acha - to wszystko dzieje sie na tej samej maszynie?

0

wszystko jest robione na tej samej maszynie, zrobiłam wszystko jak napisałeś i jak wpisuję w linii poleceń telnet localhost 1433 wyświetla mi się komunikat: Nie można nawiązać połączenia z hostem na porcie 1433: Połączenie nie powiodło się

port nie jest zablokowany; ja rozkładam chyba ręce :-[

inne pomysły [???]

0

mam 3 instancje serwera jakie pokazuje mi SQL2005 Service Manager:

  • norka
  • norka/SQLEXPRESS - wiadomo do czego
  • norka/INSERTGT - instancja stworzona przy instalacji programu InsERT GT

żadna z nich nie działa przy próbie połączenia i za każdym razem mam ten sam komunikat, który napisałam w 2 moim poście:(

0

aha i oczywiście wszystkie usługi SQL uruchamiane są automatycznie

0

sprobuj takich instancji:
.
.\SQLEXPRESS
.\INSERTGT

Acha i loguj sie za pomoca windows authentication.

0

hmmm tylko, że te instancje powstały automatycznie i nie wiem gdzie mogę zmienić ich nazwę albo dodać nowe... :/

0

a za pomocą Windows Authentication nie mogę się łączyć, bo muszę podać login i hasło do serwera z którym chcę się połączyć - on nie znajduje się na moim komputerze, nie mogę w żaden sposób zmienić jego ustawień...

0

Aaaaaaa, no to wiele zmienia... Pytalem czy to wszystko na tej samej maszynie. To co podalem to te same instancje, ktore napisalas zakladajac, ze sa na Twojej maszynie (kropka to alias localhosta).

Nie jestem pewien, ale laczac sie standardowo (przez Named Pipes) raczej nie polaczysz sie z innym komputerem.

Skoro nie mozesz zmieniac ustawien serwera to:

  1. Nazwa komputera z serwerem to 'norka' ?
  2. Dowiedz sie, czy na serwerze wlaczona jest mozliwosc laczenia sie przez TCP/IP (podawalem w ktoryms z poprzednich postow jak to ustawic)
  3. Dowiedz sie, czy na komputerze-hoscie w firewallu puszczony jest port serwera (domyslnie 1433)
  4. Sprawdz telnetem czy laczy sie na tym porcie z hostem
  5. Chcac polaczyc sie sql management studio klikasz w zakladke Options, tam zmieniasz domyslny protokol na tcp/ip
0

już wszystko działa... okazało się, że dostałam błędny adres serwera z którym miałam się łączyć WIELKIE DZIęKI ZA CIERPLIWOść i POMOC

0

a jednak nie działa - :-[ :-[ :-[ :-[ w sieci na uczelni wszystko pięknie się połączyło a jak chcę się połączyć z domu to nie mogę, więc jak na razie postąpię wg Twoich ostatnich instrukcji...

0

Skoro to siec uczelniana to bardzo mozliwe, ze na zewnatrz ten serwer nie jest widoczny - znaczy gdzies po drodze ucina go jakis firewall.

0

ale z tego co wiem to większość łączy się bez problemu...

0

Tak dla pewnosci - z domu podajesz ip serwera, czy nazwe? Jezeli nazwe to jak ona brzmi?

0

podaję nazwę: zsi3.zsi.pwr.wroc.pl

0

No to sprawdz login i haslo, bo komputer jest widoczny na zewnatrz i sql server tez dziala na domyslnym porcie. Jak teraz podajesz instancje?

0

login i hasło są prawidłowe, bo jak wcześniej napisałam podłączyłam się do sieci na uczelni i połączyłam się bez problemu za pomocą tego hasła i loginu; a co do instancji to nic nie zmieniłam i dalej SQL2005 Service Manager ma ustawioną instancję norka\SQLEXPRESS; chyba, że źle pojmuję te instancje... :/

1 użytkowników online, w tym zalogowanych: 0, gości: 1