Top-Themen

AppleEntwicklungHardwareInternetLinuxMicrosoftMultimediaNetzwerkeOff TopicSicherheitSonstige SystemeVirtualisierungWeiterbildungZusammenarbeit

Aktuelle Themen

Administrator.de FeedbackApache ServerAppleAssemblerAudioAusbildungAuslandBackupBasicBatch & ShellBenchmarksBibliotheken & ToolkitsBlogsCloud-DiensteClusterCMSCPU, RAM, MainboardsCSSC und C++DatenbankenDatenschutzDebianDigitiales FernsehenDNSDrucker und ScannerDSL, VDSLE-BooksE-BusinessE-MailEntwicklungErkennung und -AbwehrExchange ServerFestplatten, SSD, RaidFirewallFlatratesGoogle AndroidGrafikGrafikkarten & MonitoreGroupwareHardwareHosting & HousingHTMLHumor (lol)Hyper-VIconsIDE & EditorenInformationsdiensteInstallationInstant MessagingInternetInternet DomäneniOSISDN & AnaloganschlüsseiTunesJavaJavaScriptKiXtartKVMLAN, WAN, WirelessLinuxLinux DesktopLinux NetzwerkLinux ToolsLinux UserverwaltungLizenzierungMac OS XMicrosoftMicrosoft OfficeMikroTik RouterOSMonitoringMultimediaMultimedia & ZubehörNetzwerkeNetzwerkgrundlagenNetzwerkmanagementNetzwerkprotokolleNotebook & ZubehörNovell NetwareOff TopicOpenOffice, LibreOfficeOutlook & MailPapierkorbPascal und DelphiPeripheriegerätePerlPHPPythonRechtliche FragenRedHat, CentOS, FedoraRouter & RoutingSambaSAN, NAS, DASSchriftartenSchulung & TrainingSEOServerServer-HardwareSicherheitSicherheits-ToolsSicherheitsgrundlagenSolarisSonstige SystemeSoziale NetzwerkeSpeicherkartenStudentenjobs & PraktikumSuche ProjektpartnerSuseSwitche und HubsTipps & TricksTK-Netze & GeräteUbuntuUMTS, EDGE & GPRSUtilitiesVB for ApplicationsVerschlüsselung & ZertifikateVideo & StreamingViren und TrojanerVirtualisierungVisual StudioVmwareVoice over IPWebbrowserWebentwicklungWeiterbildungWindows 7Windows 8Windows 10Windows InstallationWindows MobileWindows NetzwerkWindows ServerWindows SystemdateienWindows ToolsWindows UpdateWindows UserverwaltungWindows VistaWindows XPXenserverXMLZusammenarbeit
GELÖST

VB 08 fehler beim Öffnen von Datenbank

Frage Entwicklung VB for Applications

Mitglied: d3luxe

d3luxe (Level 1) - Jetzt verbinden

17.06.2009, aktualisiert 19.06.2009, 5740 Aufrufe, 8 Kommentare

Hallo, ich arbeite gerade an einem Projekt in dem ich zum ersten mal mit Datenbanken arbeite, ich habe 2 Forms eine zum Eintragen von werten und eine zum Auslesen der Daten! Der Connectionstring ist bei beiden forms gleich aber bei der Form2 zum auslesen kommt der fehler :

Netzwerkbezogener oder instanzspezifischer Fehler beim Herstellen einer Verbindung mit SQL Server. Der Server wurde nicht gefunden, oder auf ihn kann nicht zugegriffen werden. Überprüfen Sie, ob der Instanzname richtig ist und ob SQL Server Remoteverbindungen zulässt. (provider: Named Pipes-Provider, error: 40 - Verbindung mit SQL Server konnte nicht geöffnet werden)

Ich habe schon alles versucht.. weiß jemand was ich falsch mache?
Achja ich nutze VB 08 Express SP1 und habe den SQL Server 2008 Express installiert! Es ist eine .sdf Datenbank!


Code von Daten eintragen
01.
Dim con As New SqlServerCe.SqlCeConnection 
02.
        Dim cmd As New SqlServerCe.SqlCeCommand 
03.
         
04.
 
05.
        Try 
06.
            con.ConnectionString = "Data Source=Database1.sdf" 
07.
            cmd.Connection = con 
08.
            Dim sSQL = "INSERT INTO Datensammler (Nickname) VALUES ('" 
09.
            sSQL &= TextBox13.Text 
10.
            sSQL &= "')" 
11.
            cmd.CommandText = sSQL 
12.
            con.Open() 
13.
            cmd.ExecuteNonQuery()
Code von auslesen:
01.
con.ConnectionString = "Data Source=Database1.sdf" 
02.
        cmd.Connection = con 
03.
        cmd.CommandText = "select * from Datensammler" 
04.
        con.Open() 
05.
        ausgabe() 
06.
        con.Close()
Mitglied: Biber
17.06.2009 um 21:26 Uhr
Moin d3luxe,

willkommen in der geordneten, systematischen Welt der M$-Datenbanken.

wo denn in Deinem Zweit-Schnipsel:
01.
... 
02.
.. 
03.
        cmd.CommandText = "select * from Datensammler" 
04.
        con.Open() 
05.
        ausgabe() 
06.
        con.Close()
....findet denn vermutlich das Ausführen des Selects/ das ExecuteQuery() statt?
Doch hoffentlich nicht in einer "Black Box" mit dem sprechenden Namen ausgabe() ???

Bitte, wenn wir Code-Fragmente querlesen sollen, dann bitte die posten, die wir brauchen.

Grüße
Biber
Bitte warten ..
Mitglied: d3luxe
18.06.2009 um 16:27 Uhr
Hier der Vollständige code!
Das auslesen habe ich nach dem Tutorial von Galileocomputing http://openbook.galileocomputing.de/einstieg_vb_2008/visual_basic_kap_0 ...
Sorry das beim letzten mal das wichtige gefehlt hat, ich dachte das der Sub "ausgabe" nicht wichtig wäre da der Fehler schon bei con.Open() auftritt also vor dem Sub! Außerdem habe ich den code aus dem Sub "ausgabe" gleich an die richtige stelle gebracht!
01.
Public Class Form2 
02.
    Dim con As New SqlClient.SqlConnection 
03.
    Dim cmd As New SqlClient.SqlCommand 
04.
    Dim reader As SqlClient.SqlDataReader 
05.
    Private Sub Form2_Load(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles MyBase.Load 
06.
         
07.
 
08.
 
09.
        con.ConnectionString = "Data Source=Database1.sdf" 
10.
        cmd.Connection = con 
11.
        cmd.CommandText = "select * from Datensammler" 
12.
        con.Open() 
13.
        reader = cmd.ExecuteReader() 
14.
        ListBox1.Items.Clear() 
15.
        Do While reader.Read() 
16.
            ListBox1.Items.Add(reader("Name") & " # " _ 
17.
               & reader("Wohnort") & " # " _ 
18.
               & reader("Geburtsdatum") & " # " _ 
19.
               & reader("ICQ Nummer") & " # " _ 
20.
               & reader("Skypename") & " # " _ 
21.
               & reader("MSN") & " # " _ 
22.
               & reader("Yahoo") & " # " _ 
23.
               & reader("Emailadressen") & " # " _ 
24.
               & reader("Hobbys") & " # " _ 
25.
               & reader("Musikrichtung") & " # " _ 
26.
               & reader("Spiele") & " # " _ 
27.
               & reader("Sonstige")) 
28.
        Loop 
29.
        reader.Close() 
30.
        con.Close() 
31.
 
32.
 
33.
 
34.
 
35.
    End Sub 
36.
 
37.
 
38.
 
39.
 
40.
End Class
Bitte warten ..
Mitglied: Biber
18.06.2009 um 19:38 Uhr
Moin d3luxe,

Du meintest doch oben scherzhaft in Deinem Eröffnungsbeitrag...
Der Connectionstring ist bei beiden forms gleich...

Ist also im Allgemeinen Deiner Meinung nach und nach neueren Erkenntnissen ein...
[form1] SqlServerCe.SqlCeConnection == [form2] SqlClient.SqlConnection
???????

... und wenn das neuerdings so ist bei M$
  • warum ist es früher nie aufgefallen, dass da identische Objects mit baugleichen Methoden verkauft werden?
  • Bedeutet RPC etwa "Redmonder PraktikantInnen-Castings" vor dem Stockholmer Nobelpreiskomittee??
  • und seit wann ist ist ein gültiger Client-"Ich-verbinde-mich-mit-Serverdatenbank"-Connectionstring eben mal zu sagen
con.ConnectionString = "Data Source=Database1.sdf" [bei form2]

Ich merk schon, die moderne Datenbanktechnologie hat sich schon ganz schön weiterentwickelt, seit ich das letzte draufgeschaut habe...

Grüße
Biber
Bitte warten ..
Mitglied: 76109
18.06.2009 um 20:21 Uhr
Hallo d3luxe und Hallo Biber!

Mit SQL-Datenbanken habe ich auch noch nicht gearbeitet. Mir fällt aber auf, dass die Pfadangabe der Datenbank unvollständig ist und das kein SQL-Treiber angegeben wird?
01.
con.ConnectionString ='Provider=Microsoft.SQLSERVER.CE.OLEDB.3.5;Data Source=C:\DATA\Database1.sdf';
Zudem habe ich noch was interessantes gefunden, was mir aber auch zu hoch ist, weil mir das entsprechende Handwerkszeug dazu fehlt.
01.
Dim Connection As System.Data.SqlClient.SqlConnection  
02.
 
03.
If IntegratedAuthentication Then 
04.
Connection = New System.Data.SqlClient.SqlConnection(”Data Source=” & Server & “;initial Catalog=” & Database & “;Integrated Security=True;Pooling=False”) 
05.
Else 
06.
Connection = New System.Data.SqlClient.SqlConnection(”User ID=” & UserID & “;Data Source=” & Server & “;initial Catalog=” & Database & “;Password=” & Password & “;Pooling=False”) 
07.
End If 
Vielleicht hilft Dir das ja irgendwie weiter?

Gruß Dieter
Bitte warten ..
Mitglied: Biber
18.06.2009 um 20:55 Uhr
Moin didi1954,

öhmm ja, okay...
Vielleicht habe ich eben etwas wenig konstruktiv gepostet... *zugeb*

Ich wollte ja gar nicht behaupten, dass d3luxe seine Daten nicht sowohl via SQLServerCE-Connection ansprechen wie auch über eine "normale" Client-Verbindung bearbeiten kann.

Und auch mit der zweiten, der Clientverbindung kann er natürlich auf einen Datenklumpen per SQL zugreifen, auch wenn dieser physisch auf dem gleichen Rechner liegt.

Aber dann ist -bei einer Client-Anfrage- die Datenbank definitionsgemäß auf einem Server.

Okay, der Server oder meinetwegen die Server-Engine muss dann eben sinngemäß so definiert sein:
01.
... 
02.
con.ConnectionString = "Data Source=(local);Initial Catalog=MeineDB;"
... wenn denn das con-Object in diesem Fall ein "New SqlClient.SqlConnection"-Object ist.

Das deckt sich soweit mit Deinem Schnipsel - Dort wo bei Dir "Server" steht der interpretierbare String mit Sonderbedeutung "(local)".
Und ob die "Integrated Security" nun SSPI ist oder über userId/passwort zugegriffen soll, dass müsste d3luxe schneller beantworten können als Deine IF-Abfrage.

@d3luxe
So wie ich Dich interpretiere willst Du diese "ausgabe()"/form2 in etwas ähnlichem wie einem Mini-Client-Frontend hochpoppen lassen?

Grüße
Biber
Bitte warten ..
Mitglied: d3luxe
18.06.2009 um 21:30 Uhr
Was mich jetzt wundert ist, warum funktioniert das connecten in Form1 aber nicht in Form2 :D
Ich werde den Connectionstring ändern und deinen vorschlag nutzen!

Ich habe gestern wohl die beiden SqlServerCe.SqlCeConnection und SqlClient.SqlConnection verwechselt.. Ich habe jetzt alles auf SqlServerCe umgestellt also den Reader usw. Jetzt Funktioniert das auslesen! Aber es sind Angeblich keine Daten enthalten! Aber ich habe vorher Daten eingetragen und die Dateigröße der Datenbank hat sich geändert und die Einträge finden sich wenn ich die Datenbank im Editor öffne!
Das ist der Aktuelle Code:
01.
Public Class Form2 
02.
 
03.
    Private Sub Form2_Load(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles MyBase.Load 
04.
        Dim con As New SqlServerCe.SqlCeConnection 
05.
        Dim cmd As New SqlServerCe.SqlCeCommand 
06.
        Dim reader As SqlServerCe.SqlCeDataReader 
07.
        con.ConnectionString = "Data Source=Database1.sdf" 
08.
        cmd.CommandText = "Select * from Datensammler" 
09.
        cmd.Connection = con 
10.
        con.Open() 
11.
        reader = cmd.ExecuteReader() 
12.
        ListBox1.Items.Clear() 
13.
        ListBox1.Items.Add(reader("Name")) 
14.
        GoTo en 
15.
        Do While reader.Read() 
16.
            ListBox1.Items.Add(reader("Name") & " # " _ 
17.
               & reader("Wohnort") & " # " _ 
18.
               & reader("Geburtsdatum") & " # " _ 
19.
               & reader("ICQ Nummer") & " # " _ 
20.
               & reader("Skypename") & " # " _ 
21.
               & reader("MSN") & " # " _ 
22.
               & reader("Yahoo") & " # " _ 
23.
               & reader("Emailadressen") & " # " _ 
24.
               & reader("Hobbys") & " # " _ 
25.
               & reader("Musikrichtung") & " # " _ 
26.
               & reader("Spiele") & " # " _ 
27.
               & reader("Sonstige")) 
28.
        Loop 
29.
en: 
30.
        reader.Close() 
31.
        con.Close() 
32.
 
33.
 
34.
 
35.
 
36.
    End Sub 
37.
 
38.
 
39.
 
40.
 
41.
End Class
Das "goto en" ist beabsichtigt ich wollte das erstmal testen da bei der Loopschleife kam das es mehr Zeilen gäbe als der Index es erlaubt.. deswegen wollte ich nur einen einzigen eintrag machen dabei kam das in der Zeile/Spalte nichts wäre..

Danke euch beiden!
Bitte warten ..
Mitglied: 76109
18.06.2009 um 22:50 Uhr
Hallo 3dluxe!

Gern geschehen

Hallo Biber!

Die If-Bedingung sollte nur beide Möglichkeiten mit/ohne Passwort aufzeigen/trennen

Gruß Dieter
Bitte warten ..
Mitglied: d3luxe
19.06.2009 um 18:02 Uhr
Ok ich habe mir meinen code nochmal durchgelesen und mir ist mein fehler aufgefallen :D Einige angewählte spalten habe ich falsch genannt deswegen kam der fehler... alle probleme gelöst! Nochmal danke euch beiden!
Bitte warten ..
Neuester Wissensbeitrag
Ähnliche Inhalte
Visual Studio
gelöst VB.net Datagridview in Datenbank Access zurückspeichern (1)

Frage von Pilger83 zum Thema Visual Studio ...

Exchange Server
gelöst Fehler bei öffnen des AutoResponder in OWA in verschiedenen Browsern (10)

Frage von Mobsmonster zum Thema Exchange Server ...

Heiß diskutierte Inhalte
LAN, WAN, Wireless
FritzBox, zwei Server, verschiedene Netze (18)

Frage von DavidGl zum Thema LAN, WAN, Wireless ...

Windows Netzwerk
Windows 10 RDP geht nicht (18)

Frage von Fiasko zum Thema Windows Netzwerk ...

Windows Server
Outlook Verbindungsversuch mit Exchange (15)

Frage von xbast1x zum Thema Windows Server ...