Hot News:

Unser Angebot:

  Foren auf CAD.de (alle Foren)
  VBasic / vb.net / vbs / wsh
  VB.NET 2010 Express: SQL Server 2005 Express bedienen

Antwort erstellen  Neues Thema erstellen
CAD.de Login | Logout | Profil | Profil bearbeiten | Registrieren | Voreinstellungen | Hilfe | Suchen

Anzeige:

Darstellung des Themas zum Ausdrucken. Bitte dann die Druckfunktion des Browsers verwenden. | Suche nach Beiträgen nächster neuer Beitrag | nächster älterer Beitrag
Autor Thema:  VB.NET 2010 Express: SQL Server 2005 Express bedienen (5405 mal gelesen)
KMassler
Ehrenmitglied V.I.P. h.c.
CAD Admin + Mädchen für Alles...



Sehen Sie sich das Profil von KMassler an!   Senden Sie eine Private Message an KMassler  Schreiben Sie einen Gästebucheintrag für KMassler

Beiträge: 2657
Registriert: 06.11.2000

SolidWorks Start 1999
** CSWP 01/2008 **
Dell Precision 7540 mobile Workstation,
64GB, Quadro RTX 3000;
SWX2020 SP5;
SAP/PLM+ECTR;
DriveWorks Pro;
Programmierung: VBA, aktuell Visual Studio 2017/VB.Net

erstellt am: 12. Aug. 2010 14:13    Editieren oder löschen Sie diesen Beitrag!  <-- editieren / zitieren -->   Antwort mit Zitat in Fett Antwort mit kursivem Zitat    Unities abgeben: 1 Unity (wenig hilfreich, aber dennoch)2 Unities3 Unities4 Unities5 Unities6 Unities7 Unities8 Unities9 Unities10 Unities

Hallo mal wieder,
nach langer   Zeit mal wieder ein Problem:

Ich möchte mit meinem VB.NET 2010 Express auf eine SQL Server 2005 Express-Datenbank zugreifen, abrufen, bearbeiten ...

Dazu habe ich schon alles mögliche ausprobiert und bin immer wieder gescheitert.
Mit ADODB habe ich immerhin geschafft, eine Verbindung aufzubauen, eine Tabelle anzulegen und diese von Grund auf zu befüllen   , dabei bin ich nach diesem Beispiel vorgegangen: 4.7.1. Using Connector/ODBC with Visual Basic Using ADO, DAO and RDO, (effektiv Seite 70 ff.)
Das Beispiel ist für VB6 geschrieben, ein paar .net-spezifische Anpassungen waren nötig. Gescheitert bin ich beim Wahlfreien Zugriff mit rs!name=.., rs!text=.. usw. Mit dem Ausrufezeichen kann ich nichts anfangen. Und das irgendwie sinnvoll nach .net umzusetzen habe ich nicht geschafft.  

Alternative:
Nun habe ich versucht, den Beispielen im Galileo-Buch zu folgen:
erst 8.7 Verbindung zu MySQL und dann weiter mit 8.3 Datenbankzugriff mit Visual Basic.
Das wäre mir eigentlich lieber, schon wegen der schönen Beschreibung im Galileo-Buch. Aber hier scheitere ich schon daran, die Verbindung zum Server herzustellen.

Mein akteller Code:

Code:
Private Sub cmdAlleAnsehen_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles cmdAlleAnsehen.Click
        Dim con As New MySqlConnection
        Dim cmd As New MySqlCommand
        Dim reader As MySqlDataReader

        con.ConnectionString = _
            "Data Source=S1800DW01\SQLEXPRESS; Database=VBTest;"

        cmd.Connection = con
        cmd.CommandText = "select * from VB-SQL-TEST"

        Try
            con.Open()
            reader = cmd.ExecuteReader()
            lstTab.Items.Clear()
            Do While reader.Read()
                lstTab.Items.Add(
                    reader("name") & " # " &
                    reader("vorname") & " # " &
                    reader("personalnummer") & " # " &
                    reader("gehalt") & " # " &
                    reader("geburtstag"))
            Loop
            reader.Close()
            con.Close()
        Catch ex As Exception
            MessageBox.Show(ex.Message)
        End Try
    End Sub


Leider tritt bei con.open immer ein Fehler auf. Der Aufbau des connection Strings ist hier schön beschrieben. Ich habe schon alle möglichen Varianten durchprobiert, aber nichts klappt.
Die Datenbank arbeitet mit Windows-authentification. Demnach sollte theoretisch der Parameter "Integrated Security=SSPI;" oder "Trusted_Connection=True;" mit angehängt werden, aber dabei meckert der Compiler sofort, dass diese Keywords nicht bekannt sind  . Auch "Initial Catalog=" anstatt "Database=" macht keinen Unterschied...usw. usw. usw..

Kann mir jemand hier weiterhelfen?

------------------
Klaus

www.al-ko.com | mein Gästebuch | privat... | Nasenheim    

[Diese Nachricht wurde von KMassler am 13. Aug. 2010 editiert.]

Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP

RSchulz
Ehrenmitglied V.I.P. h.c.
Head of CAD, Content & Collaboration / IT-Manager



Sehen Sie sich das Profil von RSchulz an!   Senden Sie eine Private Message an RSchulz  Schreiben Sie einen Gästebucheintrag für RSchulz

Beiträge: 5541
Registriert: 12.04.2007

@Work
Lenovo P510
Xeon E5-1630v4
64GB DDR4
Quadro P2000
256GB PCIe SSD
512GB SSD
SmarTeam V5-6 R2016 Sp04
CATIA V5-6 R2016 Sp05
E3.Series V2019
Altium Designer/Concord 19
Win 10 Pro x64

erstellt am: 12. Aug. 2010 14:45    Editieren oder löschen Sie diesen Beitrag!  <-- editieren / zitieren -->   Antwort mit Zitat in Fett Antwort mit kursivem Zitat    Unities abgeben: 1 Unity (wenig hilfreich, aber dennoch)2 Unities3 Unities4 Unities5 Unities6 Unities7 Unities8 Unities9 Unities10 Unities Nur für KMassler 10 Unities + Antwort hilfreich

Hallo Klaus,
ich habe das mal kurz quer gelesen. Bin mir selbst nicht ganz sicher aber blind würde ich es damit versuchen:

con.ConnectionString = _
            "Data Source=S1800DW01\SQLEXPRESS; Initial Catalog=VBTest"

------------------
MFG
Rick Schulz
      Nettiquette (CAD.de)  -  Was ist die Systeminfo?  -  Wie man Fragen richtig stellt.  -  Unities

Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP

KMassler
Ehrenmitglied V.I.P. h.c.
CAD Admin + Mädchen für Alles...



Sehen Sie sich das Profil von KMassler an!   Senden Sie eine Private Message an KMassler  Schreiben Sie einen Gästebucheintrag für KMassler

Beiträge: 2657
Registriert: 06.11.2000

erstellt am: 12. Aug. 2010 15:02    Editieren oder löschen Sie diesen Beitrag!  <-- editieren / zitieren -->   Antwort mit Zitat in Fett Antwort mit kursivem Zitat    Unities abgeben: 1 Unity (wenig hilfreich, aber dennoch)2 Unities3 Unities4 Unities5 Unities6 Unities7 Unities8 Unities9 Unities10 Unities

Danke, das wars leider nicht.
Das hatte ich auch schon probiert.

Die absolute Alternative zu diesem manuellen Datenbankgeschubse wäre eine funktionierende direkte Verbindung zwischen meinen DataGridviews und der Datenbank...lesend und schreibend natürlich  ** träum **
------------------
Klaus

www.al-ko.com | mein Gästebuch | privat... | Nasenheim    

[Diese Nachricht wurde von KMassler am 12. Aug. 2010 editiert.]

Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP

RSchulz
Ehrenmitglied V.I.P. h.c.
Head of CAD, Content & Collaboration / IT-Manager



Sehen Sie sich das Profil von RSchulz an!   Senden Sie eine Private Message an RSchulz  Schreiben Sie einen Gästebucheintrag für RSchulz

Beiträge: 5541
Registriert: 12.04.2007

@Work
Lenovo P510
Xeon E5-1630v4
64GB DDR4
Quadro P2000
256GB PCIe SSD
512GB SSD
SmarTeam V5-6 R2016 Sp04
CATIA V5-6 R2016 Sp05
E3.Series V2019
Altium Designer/Concord 19
Win 10 Pro x64

erstellt am: 12. Aug. 2010 15:38    Editieren oder löschen Sie diesen Beitrag!  <-- editieren / zitieren -->   Antwort mit Zitat in Fett Antwort mit kursivem Zitat    Unities abgeben: 1 Unity (wenig hilfreich, aber dennoch)2 Unities3 Unities4 Unities5 Unities6 Unities7 Unities8 Unities9 Unities10 Unities Nur für KMassler 10 Unities + Antwort hilfreich

Träum weiter 

Versuch es mal mit diesem Abschnitt... Ist zwar nur .Net 2005, sollte aber noch gültig sein. Damit habe ich in der Richtung laufen gelernt.

Achja und hier noch ein Beispiel auf deine PM zum Thema ADODB  Zum Glück habe ich mir Objektorientiertes programmieren angeeignet  sollte also direkt so aufrufbar sein bzw. musst du nur noch dem Projekt unter Verweise > .NET > "ADODB" hinzufügen.

Code:

  Public Function ReadDBTable(ByVal Provider As String,_
                              ByVal DataSource As String,_
                              ByVal UserID As String,_
                              ByVal Password As String,_
                              ByVal DBTable As String) As ADODB.Recordset

        Dim db As ADODB.Connection
        Dim ConnString As String
        Dim rs As ADODB.Recordset
        Dim SQLString As String

        Try

            SQLString = "SELECT * from " & DBTable
            ConnString = "Provider=" & Provider & _
                        ";Data Source=" & DataSource & _
                        ";User ID=" & UserID & _
                        ";Password=" & Password

            db = New ADODB.Connection
            db.CursorLocation = ADODB.CursorLocationEnum.adUseClient
            db.Open(ConnString)
            rs = New ADODB.Recordset
            rs.Open(SQLString, db, ADODB.CursorTypeEnum.adOpenStatic, ADODB.LockTypeEnum.adLockOptimistic)
            ReadDBTable = rs

        Catch ex As Exception

            ReadDBTable = Nothing
            MsgBox(ex.ToString)

        End Try

    End Function


Vll. hilft dir das ja weiter 

------------------
MFG
Rick Schulz
      Nettiquette (CAD.de)  -  Was ist die Systeminfo?  -  Wie man Fragen richtig stellt.  -  Unities

Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP

KMassler
Ehrenmitglied V.I.P. h.c.
CAD Admin + Mädchen für Alles...



Sehen Sie sich das Profil von KMassler an!   Senden Sie eine Private Message an KMassler  Schreiben Sie einen Gästebucheintrag für KMassler

Beiträge: 2657
Registriert: 06.11.2000

erstellt am: 13. Aug. 2010 12:44    Editieren oder löschen Sie diesen Beitrag!  <-- editieren / zitieren -->   Antwort mit Zitat in Fett Antwort mit kursivem Zitat    Unities abgeben: 1 Unity (wenig hilfreich, aber dennoch)2 Unities3 Unities4 Unities5 Unities6 Unities7 Unities8 Unities9 Unities10 Unities

Zitat:
Original erstellt von RSchulz:
Träum weiter  

Versuch es mal mit diesem Abschnitt... Ist zwar nur .Net 2005, sollte aber noch gültig sein. Damit habe ich in der Richtung laufen gelernt.


Danke nochmal.

Das mit dem Galileo-Buch ist im Prinzip dasselbe, was es inzwischen für VB.Net 2010 gibt. Das ist genau das, was ich ganz oben schon gesagt habe. Ich wäre happy, wenn das klappen würde, aber ich bekomme damit keine Verbindung.

Zum Thema ADODB:
Auch das habe ich -wie oben beschrieben- schon probiert. Damit schaffe ich ein simples Tabelle löschen->Tabelle anlegen->Tabelle komplett befüllen.
Mehr aber leider nicht. Aber wenn ich nichts besseres finde werde ich mich wohl damit begnügen müssen. Dann muss ich halt immer die komplette Tabelle auslesen und bei Änderungen komplett neu schreiben  Nicht schön, aber besser als nix.

Ja, und dann habe ich noch diese Beispiele:
Data Samples.
Die meisten der Beispiele verwenden TableAdapter. Das wäre wohl die Lösung aller Probleme! Leider unterstützt mein vb.net 2010 express keine SQL SERVER 2005 EXPRESS Datenbank. In der Express-Version werden nur einfache lokale Datenbanken unterstützt 
Ausnahme ist das Beispiel "CreateDB". Das braucht keine weiteren Verweise, nur System.Data.Sql.
Hier wird

  • eine Datenbank erzeugt 
  • eine Tabelle erzeugt 
  • eine Prozedur gespeichert (brauch ich wohl nicht)
  • Eine Prozedur ausgeführt, damit Daten aus einer anderen Tabelle in die eigene geschrieben und eine View erzeugt (brauch ich wohl auch nicht)
  • Ein DataGridView aus einer Tabelle (oder View) befüllt !YES! 

Aber leider

  • keine Daten direkt in die Tabelle geschrieben 
  • Keine Änderungen an der DataGridview in die Tabelle gespeichert 

Schade. Ich habs nicht geschafft, die Tabelle hier irgendwie direkt zu befüllen

Jetzt hab ich erst mal Urlaub, damit ist das Thema mindestens 3 Wochen auf Eis gelegt. Vielleicht kommt ja in der Zwischenzeit die Erleuchtung.

Bis dann also...

------------------
Klaus

www.al-ko.com | mein Gästebuch | privat... | Nasenheim 

Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP

KMassler
Ehrenmitglied V.I.P. h.c.
CAD Admin + Mädchen für Alles...



Sehen Sie sich das Profil von KMassler an!   Senden Sie eine Private Message an KMassler  Schreiben Sie einen Gästebucheintrag für KMassler

Beiträge: 2657
Registriert: 06.11.2000

SolidWorks Start 1999
** CSWP 01/2008 **
Dell Precision 7540 mobile Workstation,
64GB, Quadro RTX 3000;
SWX2020 SP5;
SAP/PLM+ECTR;
DriveWorks Pro;
Programmierung: VBA, aktuell Visual Studio 2017/VB.Net

erstellt am: 08. Sep. 2010 11:32    Editieren oder löschen Sie diesen Beitrag!  <-- editieren / zitieren -->   Antwort mit Zitat in Fett Antwort mit kursivem Zitat    Unities abgeben: 1 Unity (wenig hilfreich, aber dennoch)2 Unities3 Unities4 Unities5 Unities6 Unities7 Unities8 Unities9 Unities10 Unities


ADODB_OK.png


ADODB_FEHLER.png

 
Manno
Jetzt dachte ich, das klappt..

Ich habe ein kleines Testprojekt, bei dem mit ADODB das Erstellen, Befüllen, Löschen... funktioniert:

Dann habe ich dieselbe Vorgehensweise im Grunde 1:1 in mein eigentliches Projekt übernommen.
Beim Open-Befehl bekomme ich aber immer den Fehler

Wieso funktioniert das einmal und im anderen Projekt nicht? 

*ISCHWERVERRÜCKTMITDEMDING *

------------------
Klaus

www.al-ko.com | mein Gästebuch | privat... | Nasenheim 

Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP

KMassler
Ehrenmitglied V.I.P. h.c.
CAD Admin + Mädchen für Alles...



Sehen Sie sich das Profil von KMassler an!   Senden Sie eine Private Message an KMassler  Schreiben Sie einen Gästebucheintrag für KMassler

Beiträge: 2657
Registriert: 06.11.2000

erstellt am: 21. Sep. 2010 16:32    Editieren oder löschen Sie diesen Beitrag!  <-- editieren / zitieren -->   Antwort mit Zitat in Fett Antwort mit kursivem Zitat    Unities abgeben: 1 Unity (wenig hilfreich, aber dennoch)2 Unities3 Unities4 Unities5 Unities6 Unities7 Unities8 Unities9 Unities10 Unities


VB-und-SQL.png


SQL-Testprojekt.rar

 
Uff! Deckel druff!
                

Also....
VB.NET  2010 Express und SQL Server 2005 Express arbeiten wunderbar zusammen...wenn man weiß, wie.

Und nach langem probieren hab ichs endlich auf die Reihe bekommen, wobei meine Anforderungen ja eher bescheiden sind:
DB lesen, in DatagridView einfügen, geänderte Daten aus DataGridView wieder komplett zurückschreiben, mehr brauchte ich nicht.

Das Zauberwort heißt "System.data", mit diesem Verweis und "Imports System.Data.SqlClient" sind die Voraussetzungen geschaffen.
Auf den Trichter hat mich die Seite "Startvbdotnet.com" gebracht (die SQL-Strings sind nicht ganz hasenrein, aber das ist ein anderes Problem, die findet man z.B. auf www.aspheute.com u.ä....).

Außerdem wichtig ist natürlich der Connection-String, findet man hier auf www.connectionstrings.com

Ich habe mir mal erlaubt, das kleine Testprojekt anzuhängen, vielleicht hilfts.
Erforderlich ist eine Datenbank auf einem SQL Server 2005 (Express) namens VBTest mit einer Tabelle namens UE_DATA. Vermutlich auch mit anderen Versionen von SQL Server verwendbar.
   
Ups...Spaltenüberschriften stimmen nicht mehr, aber das soll euch nicht verwirren  


------------------
Klaus

www.al-ko.com | mein Gästebuch | privat... | Nasenheim    

[Diese Nachricht wurde von KMassler am 21. Sep. 2010 editiert.]

Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP

Anzeige.:

Anzeige: (Infos zum Werbeplatz >>)

Darstellung des Themas zum Ausdrucken. Bitte dann die Druckfunktion des Browsers verwenden. | Suche nach Beiträgen

nächster neuerer Beitrag | nächster älterer Beitrag
Antwort erstellen


Diesen Beitrag mit Lesezeichen versehen ... | Nach anderen Beiträgen suchen | CAD.de-Newsletter

Administrative Optionen: Beitrag schliessen | Archivieren/Bewegen | Beitrag melden!

Fragen und Anregungen: Kritik-Forum | Neues aus der Community: Community-Forum

(c)2023 CAD.de | Impressum | Datenschutz