Announcement

Collapse
No announcement yet.

Datenbank erstellen

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

  • Datenbank erstellen

    Hallo,
    kennt jemand ein Tutorial wie man in VB.Net eine neue Datenbank erstellt und diese dann mit Tabellen füllt?
    Das Tutorial sollte beschreiben, welche Klassen und Methoden man benötigt um das ganze zu Programmieren, also nicht den Designer erklären.

    Danke schon mal

    Christian

  • #2
    -> SQL
    Du erstellst dir ein Datenbank-object und setzt darauf die SQL-Statements an.
    <p>CREATE Database <name></p><p>CREATE Table <name></p> u.s.w.

    Gruß Nico Stöckig

    Comment


    • #3
      ok, das krieg ich hin..

      Jetzt hab ich noch ein Problemchen.
      Es kann sein, dass beim Programmstart die Datenbank erst angelegt werden muss, bevor das Programm startet.
      Ich habe eine SQL Server DB.
      Wie mach ich das am besten? Vor allem wie sieht dann der ConnectionString aus wenn ich gar keine Datenbank angeben kann. Server= localhost ist wohl das einzigste was ich angeben kann.

      Comment


      • #4
        Hallo,

        wenn der MS SQL Server (oder die MSDE) verwendet wird, kann man vorher über die <b>SQLDMO</b>-Objekte nachfragen, ob die Datenbank schon da ist. Da die COM-Objekte von SQL DMO zum unmanaged code gehören, kann das eigene .NET-Programm nur über COM Interop darauf zugreifen. Dem eigenen Projekt wird zuerst ein Verweis auf die <b>Microsoft SQLDMO Object Library 8.0</b> hinzugefügt, dann können die Objekte direkt aufgerufen werden:
        <code>
        StatusBar1.Text = "Daten werden ermittelt..."
        Dim dmoServer As New SQLDMO.SQLServer()
        ' Schritt 1: Connect zur MSDE
        dmoServer.LoginSecure = True
        dmoServer.Connect(TextBoxMSDEName.Text)
        ' Schritt 2: Installierte Datenbanken ermitteln
        Dim aDB As SQLDMO.Database
        Dim aTable As SQLDMO.Table
        Dim aTN As New TreeNode(TextBoxMSDEName.Text)
        TreeView1.Nodes.Add(aTN)
        For Each aDB In dmoServer.Databases
        If Not aDB.SystemObject Then
        Dim aDBNode As New TreeNode(aDB.Name)
        aTN.Nodes.Add(aDBNode)

        For Each aTable In aDB.Tables
        If Not aTable.SystemObject Then
        Dim aTableNode As New TreeNode(aTable.Name)
        aDBNode.Nodes.Add(aTableNode)
        End If
        Next aTable
        End If
        Next aDB
        StatusBar1.Text = "Fertig"
        ' Schritt 3: Disconnect
        dmoServer.DisConnect()
        </code>
        Wenn die Datenbank nicht vorgefunden wird, kann über SQLDMO ein SQL-Script aus einer Datei eingelesen und ausgeführt werden, die die benötigte (eigene) Datenbank anlegt:
        <code>
        StatusBar1.Text = "Script wird ausgeführt..."
        Dim dmoServer As New SQLDMO.SQLServer()
        ' Schritt 1: Connect zur MSDE
        dmoServer.LoginSecure = True
        dmoServer.Connect(TextBoxMSDEName.Text)
        ' Schritt 2: Script ausführen
        Dim aSR As IO.StreamReader
        aSR = IO.File.OpenText(TextBoxScriptFileName.Text)
        dmoServer.ExecuteImmediate(aSR.ReadToEnd)
        aSR.Close()
        ' Schritt 3: Disconnect
        dmoServer.DisConnect()
        StatusBar1.Text = "Fertig"
        </code>
        Das ausgeführte Script könnte im einfachsten Fall zum Beispiel so aussehen:
        <code>
        CREATE DATABASE MSDETest
        GO

        USE MSDETest
        GO

        CREATE TABLE TestTbl (
        TID INTEGER NOT NULL IDENTITY PRIMARY KEY,
        WERT VARCHAR(20))
        GO

        INSERT INTO TestTbl (WERT) VALUES ('Eintrag 1')
        INSERT INTO TestTbl (WERT) VALUES ('Eintrag 2')
        INSERT INTO TestTbl (WERT) VALUES ('Eintrag 3')
        GO
        </code>
        Alternativ dazu könnte die physische Datenbankdatei auf den Rechner kopiert und dann in den vorhandenen SQL Server eingehängt werden. Ein Beispiel dafür kann im Forum über die Suche nach der Zeichenkette <i>sp_attach_single_file_db </i> gefunden werden

        Comment


        • #5
          wow, danke dir..
          so stell ich mir ne antwort vor ;

          Comment


          • #6
            Alternativ könntest Du die Stored Procedur "sp_helpdb" verwenden um herauszufinden ob die Datenbank schon existiert. Damit würde man siche SQL DMO sparen, da dies ja nicht auf jedem PC vorhanden sein muss (Ist AFAIK Teil der Installation der Clienttools für den MS SQL-Server)

            Comment

            Working...
            X