Announcement

Collapse
No announcement yet.

VS2005 Datenquelle verliert die Datenbank

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

  • VS2005 Datenquelle verliert die Datenbank

    Hallo!

    Ich habe folgende "Eigenschaft" bei VS2005 SP1 bemerkt:

    Ich habe eine Anwendung erstellt, welche auf eine Datenbank (SQL2005) zugreift.
    Mit Hilfe des "Assistent zum Konfiguration von Datenquellen" habe ich ein typisiertes DataSet erzeugt.
    Den ConnectionString (übrigents SQL-Authentifizierung) habe ich in den Settings speichern lassen.

    Jetzt kommts:
    Ich habe die Datenbank umbenannt. Ich habe den ConnectionString in den Settings angepaßt.
    Die Software läuft genau wie bislang.

    DOCH: Im "Assistent zum ..." werden jetzt die Tabellen mit einem Fehler angezeigt.
    Die Fehlermeldung lautet: "Das Element TABELLENNAME im DataSet verweißt auf ein in der Datenbank fehlendes Objekt."

    Kann mir jemand erklären wie ich dieses Verhalten umgehe?

    mfg
    Thomas

  • #2
    Ich benutzte des Assi gar nicht....

    Ich stelle mir die Verbindung selbst her.... So ist man dann auch ziemlich Unabhängig von ServerName usw. Ich schreibe die Daten wie Servername, Datenbankname in die Registry und lese dann aus ( geht auch per ini etc....) im Login hole ich mir User und Passwort....

    Code:
    Dim strSQL As String= "Select...."
      Dim PstrServer As String= "Servername…"
      Dim PstrDBName As String= "Datenbankname...."
      Dim PstrDBUser As String= "Datenbankuser...."
      Dim PstrDBPwd As String= "Datenbankpasswort entsprechend des Users...."
    
    
      Dim PstrConnString As String= "Data Source=" & PstrServer & ";Initial Catalog=" & PstrDBName & ";User Id=" & PstrDBUser & ";Password=" & PstrDBPwd
    
    Dim Cnn As New SqlConnection(PstrConnString)
    Dim dsData As New DataSet
    Dim daData As SqlDataAdapter
    
    
    If Cnn.State = ConnectionState.Closed Then Cnn.Open()
    dsData.Clear()
    daData = New SqlDataAdapter(strSQL, Cnn)
    
    '.......
    
     Cnn.Close()
     Cnn.Dispose()

    Comment


    • #3
      Hallo,

      ...auf ein in der Datenbank fehlendes Objekt
      man muss an dieser Stelle zwischen der Laufzeit und der Entwicklungszeit unterscheiden. Die Settings-Einstellungen sind primär nur für die Laufzeit (der Anwender startet das kompilierte Programm) vorgesehen. Während der Entwicklungszeit ist der DataSet Designer jedoch völlig unabhängig, denn in der Regel wird der Entwickler ja niemals direkt mit der Produktionsdatenbank arbeiten, sondern immer nur mit einer Kopie der Datenbank. Aus diesem Grund speichert der TableAdapter die Verbindungszeichenfolge für den späteren Gebrauch durch den DataSet Designer direkt in den generierten Klassen, so dass nach einer Änderung auch die Konfiguration der dortigen SqlConnection-Instanz angepasst werden muss (xxx.Designer.cs bzw. xxx.Designer.vb).

      Comment


      • #4
        Hallo!

        Ich habe mir die Datei xxx.Designer.cs angeschaut und hierin den Code:

        this._connection.ConnectionString = global::CellaBatch.Properties.Settings.Default.Cel laBatchConnectionString;

        gefunden, somit wird ja auf meinen geänderten ConnectionString eingegangen.

        Ich habe festgestellt, das in der Datei xxx.xsd ebenfalls ein Verweis auf die "alte" Datenbank enthalten ist. Stellt sich nur die Frage wie man diesen Eintrag "einfach" ändern kann.

        Ich habe jetzt jede Adapter im DS über Konfigurieren angewählt und ohne Änderung über "Fertig stellen" "geändert".

        Gibt es eine Möglichkeit die Vorgabe der Connection des Assistenten zu ändern?

        mfg
        Thomas

        Comment

        Working...
        X