Announcement

Collapse
No announcement yet.

Datenquelle anbinden (MSSQLSERVER 2000) zur Designzeit nicht möglich

Collapse
X
  • Filter
  • Time
  • Show
Clear All
new posts

  • Datenquelle anbinden (MSSQLSERVER 2000) zur Designzeit nicht möglich

    Ich habe folgendes Problem mit VB.net und Kommunikation mit MSSQLSERVER 2000:

    Ich möchte ein dataGridView bereits zur Designzeit an eine bestehende Tabelle in einer vorhandenen DB binden. Es gelingt mir leider nicht. Ich kann weder im Projekt eine neue Projektdatenquelle anlegen, noch die DataSource-Eigenschaft für das DataGridView eingeben. Es scheitert jedesmal beim Verusch eine Verbindung zum SQL-Server aufzubauen. Ich habe schon alle möglichen Einstellungen versucht.

    Das Merkwürdige ist, dass ich zur Laufzeit diese Bindung machen kann und alles funktioniert wunderbar. Aber warum geht es dann nicht mit dem Designer?

    Ich habe MSSQLSERVER 2000 MSDE und Visual Studio 2005 Express mit .net 2.0 Runtime.
    Das Ganze läuft auf meiner Windows2000 Partition.

    Ich bin für jeden Hinweis dankbar, da mir eine Migration von VB6 auf VB.net mit mehreren DB und jeweils 50-60 Tabellen bevorsteht und ich vorher nur
    C++ und J++ in der Praxis gemacht habe.

  • #2
    Es scheitert jedesmal beim Verusch eine Verbindung zum SQL-Server aufzubauen. Ich habe schon alle möglichen Einstellungen versucht.
    Zeig uns was du eingegeben hast und welche Fehlermeldung du erhältst.
    Am besten auch noch zusätzlich den ConnectionString der zur Laufzeit funktioniert.

    Comment


    • #3
      Okay, folgendes:

      1) Beim Versuch im Designer dem DataViewGrid eine Projektdatenquelle hinzuzufügen, muss ich eine neue Verbindung erstellen, die dann mit TestConnect mit dem Server getestet wird. Das scheitert konsequent, obwohl der Server läuft und egal wie ich unter Extras->Optionen->Datenverbindungen : SQL-Server Instanzenname: Leer für Standard
      oder MSSQLSERVER oder meinen Rechnernamen angebe. Ist also die eine mögliche Fehlerquelle. Nach Installation von Visual Studio 2005 Express stand so was in der Art wie MSSQLEXPRESS , hatte aber nicht funktioniert. Es wird auch keine Verbindungszeichenfolge
      generiert, obwohl ich die Datenbankdatei auswählen konnte. Das ist ebenfalls verwunderlich.

      Funktionieren tut es wie folgt im Programm dynamisch:

      Class Mainform:
      [highlight=vbnet]

      Protected Const SqlConnectionString As String = _
      "Server=(local);" & _
      "DataBase=Northwind;" & _
      "Integrated Security=SSPI;" & _
      "MultipleActiveResultSets=True"


      Protected conString As String = SqlConnectionString

      'Ende der Klasse, weiter im Programm:

      Dim strSQL = _
      "USE Northwind" & vbCrLf & _
      "SELECT EmployeeID, Firstname, Lastname, Straße, [Hausnr.], PLZ, Ort, Birthday " & _
      "FROM Employees E INNER JOIN Adressen A " & _
      "ON E.AdressenID = A.ID"




      Dim dbConnection As New SqlConnection(conString)
      Dim cmd As New SqlCommand(strSQL, dbConnection)
      Dim da As New SqlDataAdapter(cmd)

      Dim ds As New DataSet()
      da.Fill(ds, "EmployeeAdressen")

      Me.MainDataGridView.DataSource = ds
      Me.MainDataGridView.DataMember = "EmployeeAdressen"

      Me.MainDataGridView.Update()

      [/highlight]

      In DataGridView wird das Ergebnis korrekt angezeigt

      Comment


      • #4
        Nach Installation von Visual Studio 2005 Express stand so was in der Art wie MSSQLEXPRESS
        Visual Studio hat dir eine SQL Server 2005 Express Version mit installiert das ist die MSSQLEXPRESS Instanz. Da dein Runtimecode funktioniert hat deine MSDE Datenbank keinen Instanznamen. Den solltest du also weg lassen wenn du die MSDE benutzen willst.

        Ich habe schon länger nicht mehr mit der MSDE gearbeitet es kann sein das man dort noch explizit den Netzwerkzugriff per TCP/IP freigeben muss(Dein Connectionstring im Code geht vermutlich per Named Pipes an die Datenbank).

        Comment


        • #5
          Danke, ja das stimmt mit der SQL Server 2005 Express Version, allerdings habe ich die deinstalliert und anschließend den 2000 MSDE installiert. Wenn ich keinen Instanzennamen unter Extras->Optionen->Datenverbindungen angebe, steht da ja ausdrücklich leer für Standard, aber das funktionierte ja leider ebenfalls nicht.

          Ich schau mal nach, wie das mit der TCP/IP-Freigabe funktioniert und ob ich da irgendwie rankomme. Ich habe allerdings keine Verwaltungstools, nur eben Windows selbst und den MS SQL Manager Lite, mit dem ich direkt auf die DB und Tabellen zugreifen kann.

          Vielen Dank für Deine/Ihre (Sorry, ich kenne in diesem Forum noch nicht alle Konventionen, ob gesiezt oder immer geduzt wird) Antwort.

          Comment

          Working...
          X