Elektroda.pl
Elektroda.pl
X

Search our partners

Find the latest content on electronic components. Datasheets.com
Elektroda.pl
Please add exception to AdBlock for elektroda.pl.
If you watch the ads, you support portal and users.

[C#] Komunikacja z bazą danych SQL.

Rafal.J.645 06 Oct 2011 20:59 7963 23
  • #1
    Rafal.J.645
    Level 11  
    Witam.
    Piszę program w visual C#. Mam problem z bazą danych, nie wiem jak się z nią połączyć.
    Na razie próbuję napisać najprostszy program do połączenia z bazą. Znalazłem w internecie taki kod:
    Code: csharp
    Log in, to see the code

    ale nie działa (program się zawiesza i nie odpowiada).
    Co w tym kodzie jest źle, i jak on powinien prawidłowo wyglądać?

    Bardzo proszę o pomoc.

    Pozdrawiam.
  • #2
    marcinj12
    Level 40  
    Jaka to baza? Gdzie jest umieszczona?
  • #3
    Rafal.J.645
    Level 11  
    Jest to Local Database o nazwie baza1.sdf zrobiona po kliknięciu Add New Item.
  • #4
    marcinj12
    Level 40  
    A jak instalowałeś Visual studio zaznaczyłeś instalację SQL Server?
    Jak tworzysz bazę w ten sposób to connection string masz wstawiany automatycznie do properties. Spróbuj tego kodu, jak nie zadziała to wklej wyjątek który wyrzuci:
    Code: csharp
    Log in, to see the code
  • #5
    Rafal.J.645
    Level 11  
    Dalej nie działa :( program dalej się zawiesza (tak jak wcześniej).
    SQL Server mam zainstalowany.
  • #6
    Alkaidek
    Level 10  
    Może spróbuj w ten sposób się połączyć
    Code: csharp
    Log in, to see the code
  • #7
    Rafal.J.645
    Level 11  
    A co wpisać w "NazwaServera"?
  • #8
    Alkaidek
    Level 10  
    Nazwę serwera, na którym stoi Twoja baza ;)
  • #9
    Rafal.J.645
    Level 11  
    A jak to sprawdzić? Bo ja chyba żadnej takiej nazwy nie ustawiałem.
  • #10
    pixel7
    Level 22  
    Alkaidek wrote:
    Nazwę serwera, na którym stoi Twoja baza ;)


    Wraz z instancją jeśli takowa jest. Jeśli został zainstalowany express to powinno wyglądać to tak "NazwaSerwera\SqlExpress2008". Można to sprawdzić za pomocą SQL Server Configuration Manager jakie instancje są zainstalowane na danym komputerze.
  • #11
    Alkaidek
    Level 10  
    Albo możesz sprawdzić za pomocą Narzędzi Administracyjnych/Usługi i szukasz usług o nazwie wyświetlanej "SQL Server (<nazwa_instancji>)". A potem jak już przeczytasz nazwę instancji dostajesz się do instancji używając notacji <nazwa_komputera>\<nazwa_instancji> ;)
  • #12
    Rafal.J.645
    Level 11  
    No to teraz jest tak:
    Code: csharp
    Log in, to see the code

    i dalej to samo :( .
  • #13
    pixel7
    Level 22  
    Czy twój komputer nazywa się "SQLEXPRESS" ? Masz wpisać tam nazwę kompa i po \ nazwę instancji sql.
  • #14
    Rafal.J.645
    Level 11  
    Coś takiego?:
    Code: csharp
    Log in, to see the code

    wywaliło coś takiego:
    Code:
    Cannot open database "baza1" requested by the login. The login failed.
    
    Login failed for user 'Rafal-Komputer\Rafal'.
  • #15
    pixel7
    Level 22  
    I dobrze. Serwer znaleziony, tylko brakuje uprawnień twojemu użytkownikowi komputera. Przyda się teraz "SQL Server Management Studio" - jeśli nie masz to ściągnij i zainstaluj wersje zgodną z twoją wersją sql - lub dla wyższej. Zaloguj się do serwera użytkownikiem "sa" - pewnie podawałeś hasło przy instalacji? Po zalogowaniu rozwiń "Security/Logins" i swojemu użytkownikowi nadaj uprawnienia sysadmin.

    Możesz spróbować też logowania nie-zintegrowanego:

    Code: csharp
    Log in, to see the code


    Po "=" za password wstaw hasło dla twojego "sa"
  • #16
    Rafal.J.645
    Level 11  
    No tak, zainstalowałem SQL Server Management Studio, zalogowałem się do bazy
    ustawiając w "Server type:" "SQL Server Compact Edition", w "Database file:"
    ustawiłem plik bazy. Zakładki "Security/Logins" tam nie ma. Hasła do bazy nie było,
    ustawiłem na "123456789".

    Dobrze to robię? Jak teraz ustawić nazwę użytkownika?
  • #17
    pixel7
    Level 22  
    Zaloguj się do "Database engine". Wtedy będziesz widział wszystko.
  • #18
    Rafal.J.645
    Level 11  
    W "Server name:" wpisałem "Rafal-Komputer\SQLEXPRESS",
    w "Authentication:" wybrałem "Windows Authentication".
    Zalogowałem się i w moim użytkowniku było już zaznaczone "sysadmin".
    Co teraz zrobić?
  • #20
    Rafal.J.645
    Level 11  
    Tabele mam w bazie, tylko jeśli już ją wyświetlę, to mogę coś tam zmienić żeby
    móc się do niej zalogować w programie (C#)?
  • #21
    blue_17
    Level 32  
    Oj kolego to nie tak działa

    Jeśli masz "główne konto" czyli po linuxowemu roota to masz prawa do wszystkich tabel i wszystko możesz zrobić, jako tak jeśli za bardzo nie wiesz jak działa baza MySQL-owa to żeby jakoś tego dotknąć to radzę phpadmin-a

    Zobaczysz kto nadaje prawa, jakie są te prawa itd

    Jeśli chodzi o wyświetlanie tabel np całej zawartości

    To łatwo nie uda Ci się czegoś zepsuć jeśli nie znasz składni sql-a ale żeby robić podstawowe rzezy to starczy Ci

    SELECT, INSERT, UPDATE zapoznaj się co robią te polecenia i radził bym się zapoznać ze swoimi tabelami a właściwie ich strukturą

    Polecam t stronę on-line możesz zobaczyć wyniki zapytań i dużo dużo więcej

    http://www.w3schools.com/sql/sql_tryit.asp

    Pozdrawiam
  • #22
    Rafal.J.645
    Level 11  
    Ze składnią sql'a problemu raczej nie będę miał, bo wygoogluje sobie.
    Jak działa taka baza to mniej więcej wiem z wikipedi.
    A problemem mam zalogowanie do bazy. Szukałem, ale nigdzie nie mogę
    znaleźć, co muszę zrobić, żeby mieć do niej uprawnienia?
  • #24
    Rafal.J.645
    Level 11  
    Przemyślałem sobie to trochę i wydaje mi się to bez sensu... :/
    Jak będę chciał używać tego programu co piszę na innym komputerze, to
    muszę zmieniać kod programu i ściągać SQL Server Management Studio?




    pixel7 wrote:
    Możesz spróbować też logowania nie-zintegrowanego:

    Code: csharp
    Log in, to see the code





    Po "=" za password wstaw hasło dla twojego "sa"


    Skopiowałem ten kod (nic nie zmieniałem) i wywaliło mi:
    Quote:
    Login failed for user 'sa'.


    Jak sprawdzić hasło do "sa"?