Du bist nicht angemeldet.

Chris213

Registrierter Benutzer

  • »Chris213« ist männlich
  • »Chris213« ist der Autor dieses Themas

Beiträge: 1 003

Dabei seit: 29. März 2009

Wohnort: Wutöschingen

Hilfreich-Bewertungen: 27

  • Private Nachricht senden

1

Dienstag, 13. Juli 2010, 17:17

Grundkurs Datanbank Programmierung

Beitrag
Ich wollte hier mal einen "Grundkurs" für Datenbank Programmierung erstellen, weil ich im Form das nicht mehr sehen kann, wie teils der Code Aufgebaut ist.
Also fangen wir mal mit der Datenbank Programmierung für Access an. Später, falls erwünscht, erstelle ich noch ein Tutorial für MySQL.

Die MySQL.Data.dll muss Importiert sein.

1. Deklarationen
Als erstes erstellen wir ein Modul. Ist für größere Projekte besser, weil man sonst immer alles in jedem Form neu deklarieren muss.

Visual Basic Quellcode

1
2
3
4
5
6
Imports System.Data.OleDb

Public con As New OleDb.OleDbConnection
Public cmd As New OleDb.OleDbCommand
Public reader As OleDb.OleDbDataReader
Public anzahl As Integer




2. Provider
Dann muss das Programm noch wissen, mit welcher Datenbank sie sich verbinden soll.

Visual Basic Quellcode

1
2
3
4
Public Sub Provider()
        con.ConnectionString = "Provider=Microsoft.Jet.OLEDB.4.0; Data Source=Pfad_zur_datenbank;"
        cmd.Connection = con
 End Sub




3. DataGridView
Falls Ihr eine DataGridView mit den Datanbank Informationen füllen wollt braucht Ihr diesen Code

Visual Basic Quellcode

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
 Dim ds As New DataSet
    Dim dt As New DataTable
    Dim da As OleDbDataAdapter
    Dim bs As New BindingSource

Public Sub DGV_sehen(ByVal DGV As DataGridView)
        dt.Clear()
        Provider()
        ds.Tables.Add(New DataTable)
        da = New OleDbDataAdapter("select * from Tabelle", con) 'Hier ist das wesentliche. Mit dem * sagen wir dem Programm, das wir alle Spalten der Tabelle laden möchte. Tabelle muss man eben durch den richtigen Tabellennamen ersetzen.
        da.Fill(dt)
        Dim cb As New OleDbCommandBuilder(da)
        bs.DataSource = dt
        DGV.DataSource = bs
    End Sub




Allgemein:
Hier man ein Stopp. Ich arbeite mit einer Datenbank mit einer Tabelle (Benutzer) und folgende Spalten in der Tabelle (Name, Alter, EMail, ID). ID sollte in jeder Tabelle forhanden sein, weil ohne die kann man schlecht Einträge in die Datenbank hinzufügen, bearbeiten und löschen. Und Die Spalte hat immer den Primärindex und das Extra, das sie immer automatisch erhöht wird.

DB = Datenbank

Kommen wir nun zum eher Schwierigem Teil

4. Hinzufügen eines Eintrags

Visual Basic Quellcode

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
 If txt_name.Text = "" Or txt_alter.Text = "" Or txt_email.Text = "" Then
            msgbox("Füllen Sie alle Felder aus!")
        Else
            Try
                con.Open() 'Verbindung zur Db öffnen
                cmd.CommandText = "INSERT INTO Benutzer(Name, Alter, EMail) VALUES ('" & txt_name.text & "', '" & txt_alter.text & "', '" & txt_name.Text  & "')" 'Der Befehl für die DB
                anzahl = cmd.ExecuteNonQuery 'anzahl enthält nun ein Wert alle geänderten/ hinzugefügten/ gelöschten Einträge
                con.close 'Verbindung zur DB schließen
                If anzahl > 0 Then 'Nun wird kontrolliert ob überhaupt ein Eintrag hinzugefügt geworden ist, wenn ja dann die MSG
                    MsgBox("Sie haben einen Eintrag gemacht", MsgBoxStyle.Information)
                End If
            Catch ex As Exception
                con.close 'ich schließe hier ebenfalls die Verbindung, weil wenn ein Fehler in dem oberen code passiert, passiert er vor dem schließen der Verbindung. Wenn ich das nicht machen würde käme der Fehler das die Verbindung noch offen ist, wenn ich das nächste mal eine Verbindung öffne.
                MsgBox(ex.Message)
            End Try
        End If




Der Befehl zum Hinzufügen von Einträgen ist also so aufgebaut
insert into Tabelle (Alle Spalten) values (werte der Spalten)

Eine String muss zwischen Hochkommas stehen '', Zahlen nicht.

Die Verbindung kann man auch erst später schließen, würde ich aber nicht machen (habe es vor kurzen immer erst nach der IF Abrfage gemacht), weil sonst es Probleme geben kann, wenn man in einem Timer auch einen DB Abfrage hat. Da kommt dann ein Fehler das man die DB Verbindung zuert schließen muss, diese übergehen wir, das wir die Verbindung schnellst möglich wieder schließen, deswegen vor der MSG, weil der User des Programmes, zulange braucht um die MSG weg zu klicken.

5. Bearbeiten

Visual Basic Quellcode

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
If txt_name.Text = "" Or txt_alter.Text = "" Or txt_email.Text = "" Then
msgbox("Füllen Sie alle Felder aus!")
Else
Try
con.Open()
cmd.CommandText = "UPDATE Benutzer SET Name = '" & txt_name.text & "', Alter = '" & txt_alter.text & "', EMail = '" & txt_name.Text & "' where ID = 0" 
anzahl = cmd.ExecuteNonQuery
con.close
If anzahl > 0 Then 
MsgBox("Sie haben einen Eintrag bearbeitet", MsgBoxStyle.Information)
End If
Catch ex As Exception
con.close
MsgBox(ex.Message)
End Try
End If


Es ändert sich hier nur der CommandText. Struktur:
update Tabelle_name set spalte = 'wert'

6. Löschen
Hier ist der Restliche Code auch wieder gleich, eben außer der CommandText und die 1. If abfrage, die kann hier weg.

Visual Basic Quellcode

1
cmd.CommandText = "delete from Benutzer where ID = 0"



Hier wird er Eintrag gelöscht, der die ID 0 hat.

Struktur:
delete from Tabellen_name


7. Auslesen
Jetzt kommen wir zum wichtigstem Thema, das Auslesen der Datenbank. Wir haben weiter oben schon das auslesen in eine Datagridview behandelt, aber noch nicht in Textboxen oder in eine Listbox.

7.1 Textbox

Visual Basic Quellcode

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
 Try
            con.Open()
            cmd.CommandText = "SELECT * FROM Benutzer WHERE ID = 0"
            reader = cmd.ExecuteReader
            Do While reader.Read
               txt_name.text = reader("Name")
               txt_alter.text = reader("Alter")
               txt_email.text = reader("EMail")
            Loop
            reader.Close()
              con.close
        Catch ex As Exception
            con.close
            MsgBox(ex.Message)
        End Try


Hier kommt noch der "Reader" hinzu.
Als erstes "verkürzen" wir den aktuellen Reader (cmd.ExecuteReader in reader). Danach starten wir eine do while schleife diese läuft solange bis alle Einträge der DB abgearbeitet sind. In der schleife ändern wir den Text der einzelnen Textboxen.
Hier brauchen wir noch einen "where" Befehle, weil sonst die Textboxen nur den letzten Eintrag in der Datenbank enthalten. So enthalten Sie den Wert von dem Eintrag mit der ID 0.
Struktur:
reader("Spalten_name")

Der rest ist wieder klar. Reader schließen und DB Verbindung schließen.

7.2 Listbox

Visual Basic Quellcode

1
2
3
4
5
6
7
8
9
10
11
12
13
14
 Try
            con.Open()
            cmd.CommandText = "SELECT * FROM Benutzer"
            reader = cmd.ExecuteReader
            lb_benutzer.itesm.clear()
            Do While reader.Read
               lb_benutzer.items.add(reader("Name"))
            Loop
            reader.Close()
              con.close
        Catch ex As Exception
            con.close
            MsgBox(ex.Message)
        End Try


Hier ändert sich nicht wirklich viel. Wir brauchen hier kein "where" Befehl, weil wir alle benutzer angezeigt haben wollen.
In der Schleife fügen wir immer die ganzen Namen der User hinzu.

8. ID auslesen
Manche haben sich vielleicht schon gefragt, wie ich die Id des Eintrags rausbekomme, den ich bearbeiten bzw. löschen möchte.

Visual Basic Quellcode

1
2
3
4
5
6
7
8
9
10
11
12
13
14
dim ID as new List(of String)
Try
            con.Open()
            cmd.CommandText = "SELECT ID FROM Benutzer"
            reader = cmd.ExecuteReader
            ID.Clear()
            Do While reader.Read
                ID.Add(reader("ID"))
            Loop
            reader.Close()
        Catch ex As Exception
            con.close
            MsgBox(ex.Message)
        End Try

als erstes laden wir alle IDs in eine Liste.
nun kann man ganz leicht die entsprechende id abfragen. z.B. mit einer Listbox:

Visual Basic Quellcode

1
 cmd.CommandText = "delete from Benutzer where ID = " & ID(lb_benutzer.selectedindex)


Nun würde das Programm den Eintrag löschen, der in der Listbox ausgewählt wurde.



Hier komme ich mal zum Ende. Ich hoffe, dass ich nicht so viele Rechtschreibfehler eingebaut habe, wenn doch nimmt es mit nicht übel.

Falls Interesse an einem MySQL Tutorial besteht, dann meldet auch bitte bei mir.
Mfg chris213

Meine Finanzen LeitSim4

Dieser Beitrag wurde bereits 2 mal editiert, zuletzt von »Chris213« (14. Juli 2010, 19:39) aus folgendem Grund: Verbessern


Es haben bereits 4 registrierte Benutzer diesen Beitrag als hilfreich eingestuft.

Benutzer, die diesen Beitrag hilfreich fanden:

fatih, nxtman, Matze396, Mikeradtke

picoflop

Böse und gemein!

Beiträge: 5 843

Dabei seit: 19. März 2009

Hilfreich-Bewertungen: 546

  • Private Nachricht senden

2

Dienstag, 13. Juli 2010, 17:36

Meine Meinung: Gewollt, aber nicht gekonnt.
"SELECT * FROM table" um EINE Spalte auszulesen?
Keine Verwendung von DBParameter? usw usw
Von Hilfeanfragen via PN ist ABZUSEHEN!


GUI - Threading Best Of - Async - x64 Excp

Chris213

Registrierter Benutzer

  • »Chris213« ist männlich
  • »Chris213« ist der Autor dieses Themas

Beiträge: 1 003

Dabei seit: 29. März 2009

Wohnort: Wutöschingen

Hilfreich-Bewertungen: 27

  • Private Nachricht senden

3

Dienstag, 13. Juli 2010, 20:18

Nein mit dem * liest du alle Spalten aus. So würdest du nur eine Spalte auslesen
"select Name from table
Mfg chris213

Meine Finanzen LeitSim4

INOPIAE

Registrierter Benutzer

Beiträge: 1 478

Dabei seit: 18. Januar 2009

Hilfreich-Bewertungen: 3

  • Private Nachricht senden

4

Mittwoch, 14. Juli 2010, 06:38

Hi Chris123,

ein guter Anfang, aber hier noch ein paar Hinweis:

Generell solltest Du die Schlüsselworte für SQL groß schreiben, das erleichtert, insbesondere Anfängern, das Lesen und Verstehen des Codes.

zu 3. Du sollest noch erläutern, warum Du die BindingSource verwendest, denn es geht auch ohne.
zu 4. Das Schließen der Datenbank sollte entweder außerhalb des Try-Block oder in einem Finally stehen, damit die Verbindung auch im Fehlerfall geschlossen wird.
zu 7.1 Warum nutzt Du die Do-Schleife, wenn Du nur einen Datensatz auslesen willst.
zu 7.2 Warum musst Du umständlich alles zeilenweise auszulesen? Sinnvoller wäre es alles in eine Tabelle lesen (siehe 3) und diese dann an die Listbox binden. Dann hast Du auch nicht das Problem mit der ID in 8

NB. Es ist doch schön, wenn man lesbare Namen vergibt. Siehe auch [VB.NET] Beispiele für guten und schlechten Code (Stil).

picoflop

Böse und gemein!

Beiträge: 5 843

Dabei seit: 19. März 2009

Hilfreich-Bewertungen: 546

  • Private Nachricht senden

5

Mittwoch, 14. Juli 2010, 09:17

Nein mit dem * liest du alle Spalten aus

Wirklich? ;)
In deinem Beispiel-Code willst du die IDs lesen, benutzt aber SELECT * statt SELECT ID ...
Sowas ist ziemlich ineffizient und sollte in einen "Tutorial" IMHO nicht auftauchen!
Außerdem sollte man IMHO gleich mit DBParametern arbeiten, weil man so diverse Konvertierungsprobleme etc umgeht, bzw in den Treiber auslagert (und der weiß es am besten)
Von Hilfeanfragen via PN ist ABZUSEHEN!


GUI - Threading Best Of - Async - x64 Excp

Chris213

Registrierter Benutzer

  • »Chris213« ist männlich
  • »Chris213« ist der Autor dieses Themas

Beiträge: 1 003

Dabei seit: 29. März 2009

Wohnort: Wutöschingen

Hilfreich-Bewertungen: 27

  • Private Nachricht senden

6

Mittwoch, 14. Juli 2010, 19:33

Hi Chris123,

ein guter Anfang, aber hier noch ein paar Hinweis:

Generell solltest Du die Schlüsselworte für SQL groß schreiben, das erleichtert, insbesondere Anfängern, das Lesen und Verstehen des Codes.

zu 3. Du sollest noch erläutern, warum Du die BindingSource verwendest, denn es geht auch ohne.
zu 4. Das Schließen der Datenbank sollte entweder außerhalb des Try-Block oder in einem Finally stehen, damit die Verbindung auch im Fehlerfall geschlossen wird.
zu 7.1 Warum nutzt Du die Do-Schleife, wenn Du nur einen Datensatz auslesen willst.
zu 7.2 Warum musst Du umständlich alles zeilenweise auszulesen? Sinnvoller wäre es alles in eine Tabelle lesen (siehe 3) und diese dann an die Listbox binden. Dann hast Du auch nicht das Problem mit der ID in 8


Das mit dem Groß schreiben merk ich mir, ich machst halt immer klein :D
Den rest werde ich später auch noch ergänzen, danke für dein tipps
Das schießen der Verbindung außerhalb bringt eben so Fehler, habe hier leider immer das con.close in dem Catch Teil vergessen.

Nein mit dem * liest du alle Spalten aus

Wirklich? ;)
In deinem Beispiel-Code willst du die IDs lesen, benutzt aber SELECT * statt SELECT ID ...
Sowas ist ziemlich ineffizient und sollte in einen "Tutorial" IMHO nicht auftauchen!
Außerdem sollte man IMHO gleich mit DBParametern arbeiten, weil man so diverse Konvertierungsprobleme etc umgeht, bzw in den Treiber auslagert (und der weiß es am besten)


Ich lese eigendlich immer alle Spalten aus, ist oftmals einfacher, als die Spalten aufzulisten. Jedoch hast du vollkommen Recht, das macht das Programm langsamer und sollte bei nur einer Spalte nicht verwendet werden. :D
Mfg chris213

Meine Finanzen LeitSim4

FS-DU

Registrierter Benutzer

Beiträge: 12

Dabei seit: 23. November 2010

Hilfreich-Bewertungen: 1

  • Private Nachricht senden

7

Sonntag, 26. Dezember 2010, 21:11

Wie importiere ich die MySQL.Data.dll ?? und vor allem wo bekomme ich die her?

P.S.: Oben steht das Tut is für MS Access aber mir wurde es für MySQl empfohlen.. ?( ?(

Dieser Beitrag wurde bereits 1 mal editiert, zuletzt von »FS-DU« (26. Dezember 2010, 22:12)


Chris213

Registrierter Benutzer

  • »Chris213« ist männlich
  • »Chris213« ist der Autor dieses Themas

Beiträge: 1 003

Dabei seit: 29. März 2009

Wohnort: Wutöschingen

Hilfreich-Bewertungen: 27

  • Private Nachricht senden

8

Montag, 27. Dezember 2010, 11:20

Die Mysql.Data.dll hänge ich dir mal an.

Für Mysql musst du nur die Deklarationen von con, cmd, reader ändern und den Provider musst du ändern.
anstatt das

Visual Basic Quellcode

1
2
3
4
5
6
7
8
9
10
Imports System.Data.OleDb

Public con As New OleDb.OleDbConnection
Public cmd As New OleDb.OleDbCommand
Public reader As OleDb.OleDbDataReader

Public Sub Provider()
        con.ConnectionString = "Provider=Microsoft.Jet.OLEDB.4.0; Data Source=Pfad_zur_datenbank;"
        cmd.Connection = con
 End Sub

schreibst du das

Visual Basic Quellcode

1
2
3
4
5
6
7
8
9
10
Imports MySql.Data.MySqlClient

Public con As New MySqlConnection
Public cmd As New MySqlCommand
Public reader As MySqlDataReader

Public Sub Provider()
        con.ConnectionString = "server=ip_des_servers;user id=Benutzer_name;password=passwort;database=Datenbank_name;"
        cmd.Connection = con
End Sub


Einen Verweis auf die Mysql.Data.dll machst du so:
- Entpacke die DLL
- Füge die DLL in den Ordner \Projekt_name\bin\Debug\ ein, sodass es eine Probleme beim veröffentlichen deines Projektes gibt
- öffne dein Projekt
- Klicke mit der rechten Maustaste auf dein Projektname im Projekt-Explorer.
- Klicke nun auf Verweis hinzufügen
- Gehe auf den Reiter "Durchsuchen"
- öffne den Verzeichnis "bin"
- dann "Debug"
- wähle nun die Mysql.Data.dll aus und klicke auf OK
- Fertig

Ich hoffe ich konnte dir helfen.
»Chris213« hat folgende Datei angehängt:
  • MySql.Data.rar (104,5 kB - 89 mal heruntergeladen - zuletzt: 28. Januar 2012, 14:17)
Mfg chris213

Meine Finanzen LeitSim4

M-Arens

Registrierter Benutzer

  • »M-Arens« ist männlich

Beiträge: 109

Dabei seit: 14. Juli 2009

  • Private Nachricht senden

9

Mittwoch, 29. Dezember 2010, 08:25

Was alles sollte den jetzt in das Modul rein?
Danke

:rolleyes: :thumbup:

Chris213

Registrierter Benutzer

  • »Chris213« ist männlich
  • »Chris213« ist der Autor dieses Themas

Beiträge: 1 003

Dabei seit: 29. März 2009

Wohnort: Wutöschingen

Hilfreich-Bewertungen: 27

  • Private Nachricht senden

10

Mittwoch, 29. Dezember 2010, 10:10

so Wie du willst. ich mach immer die definitionen und den Public Sub Provider in das Modul.
Mfg chris213

Meine Finanzen LeitSim4

nxtman

Registrierter Benutzer

Beiträge: 20

Dabei seit: 18. April 2010

  • Private Nachricht senden

11

Montag, 4. Juli 2011, 19:33

Hi, dein Code hat mir bis jetzt sehr geholfen, aber da gibts ein problem beim bearbeiten von nem Eintrag, das ich nicht lösen kann:


wäre sehr dankbar über Hilfe

Gruß nxtman
Gruß Nxtman




Chris213

Registrierter Benutzer

  • »Chris213« ist männlich
  • »Chris213« ist der Autor dieses Themas

Beiträge: 1 003

Dabei seit: 29. März 2009

Wohnort: Wutöschingen

Hilfreich-Bewertungen: 27

  • Private Nachricht senden

12

Mittwoch, 6. Juli 2011, 19:30

dann poste mal die ganze Update Anweisung mit dem Bild Ausschnitt sieht man das nicht.
Mfg chris213

Meine Finanzen LeitSim4

nxtman

Registrierter Benutzer

Beiträge: 20

Dabei seit: 18. April 2010

  • Private Nachricht senden

13

Montag, 11. Juli 2011, 23:05

Danke für die Antwort,
hier ist der Code:

Visual Basic Quellcode

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
    Private Sub Button1_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button1.Click
        If txt_vname.Text = "" Or txt_nname.Text = "" Or txt_strasse.Text = "" Or txt_hnummer.Text = "" Or txt_plz.Text = "" Or txt_ort.Text = "" Or txt_telnummer.Text = "" Or txt_kundennummer.Text = "" Then
            MsgBox("Füllen Sie die markierten Felder aus!")
        Else
            'Try
            con.Open()
            cmd.CommandText = "UPDATE Kunden SET Name = '" & txt_vname.Text & "','" & txt_nname.Text & "','" & txt_strasse.Text & "','" & txt_hnummer.Text & "','" & txt_plz.Text & "','" & txt_ort.Text & "','" & txt_telnummer.Text & "','" & txt_telnummer2.Text & "','" & txt_handynummer.Text & "','" & txt_kundennummer.Text & "','" & gebdatum.Value & "' where ID = " & ID
            anzahl = cmd.ExecuteNonQuery
            con.Close()
            If anzahl > 0 Then
                MsgBox("Sie haben einen Kunden bearbeitet", MsgBoxStyle.Information)
            End If
            'Catch ex As Exception
            'con.Close()
            'MsgBox(ex.Message)
            'End Try
        End If
    End Sub
Gruß Nxtman




jvbsl

Noob

  • »jvbsl« ist männlich

Beiträge: 7 206

Dabei seit: 7. April 2010

Hilfreich-Bewertungen: 397

  • Private Nachricht senden

14

Dienstag, 12. Juli 2011, 00:25

Zitat

"UPDATE Kunden SET Name = '" & txt_vname.Text & "','" & txt_nname.Text & "','" & txt_strasse.Text

Quellcode

1
"UPDATE Kunden SET Name = '" & txt_vname.Text & "',' nachname=" & txt_nname.Text & "',' strasse=" & txt_strasse.Text

natürlich fortsetzen und deine entsprechenden Bezeichnungen eintragen, aber so wie du es oben hast, weiß MySQL nicht, wo es denn was eintragen soll...
Ich wollte auch mal ne total überflüssige Signatur:
---Leer---

picoflop

Böse und gemein!

Beiträge: 5 843

Dabei seit: 19. März 2009

Hilfreich-Bewertungen: 546

  • Private Nachricht senden

15

Dienstag, 12. Juli 2011, 07:06

Du sagst der Datenbank:
Ich möchte EIN Feld updaten. Nämlich Name. Aber du übergibst mehr als einen Wert (die durch Kommas getrennt werden)
Es müsste also heißen:
UPDATE Tabelle SET Name='Wutz', Vorname='Willi', Ort='Posemuckel' WHERE ID=42
Von Hilfeanfragen via PN ist ABZUSEHEN!


GUI - Threading Best Of - Async - x64 Excp

Freefighter

Notfallsanitäter

  • »Freefighter« ist männlich

Beiträge: 149

Dabei seit: 4. September 2011

Wohnort: Dresden

Hilfreich-Bewertungen: 5

  • Private Nachricht senden

16

Samstag, 8. Oktober 2011, 13:35

Bei mir kommt dieser Fehler:



SQL-Abfrage(n)

1
2
3
4
5
6
7
DROP TABLE IF EXISTS `benutzer`;
CREATE TABLE `benutzer` (
  `Benutzername` int(5) NOT NULL auto_increment,
  `Passwort` varchar(255) default NULL,
  `Email` varchar(255) default NULL,
  PRIMARY KEY  (`ID`)
) ENGINE=MyISAM AUTO_INCREMENT=9 DEFAULT CHARSET=latin1;


Visual Basic Quellcode

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
	Public con As New MySqlConnection
	Public cmd As New MySqlCommand
	Public reader As MySqlDataReader

Public Sub Provider()
    	con.ConnectionString = "server=***;user id=***;password=***;database=***"
    	cmd.Connection = con
	End Sub

 	Try
        	con.Open()
        	cmd.CommandText = "SELECT * FROM benutzer WHERE Benutzername = " & TextBox1.Text
        	reader = cmd.ExecuteReader
        	Do While reader.Read
            	recht = reader("Recht")
        	Loop
        	reader.Close()
        	con.Close()
    	Catch ex As Exception
        	con.Close()
        	MsgBox(ex.Message)
    	End Try



was mach ich falsch??

MfG

ErfinderDesRades

Wer nicht fragt bleibt dumm

Beiträge: 5 507

Dabei seit: 18. Februar 2011

Hilfreich-Bewertungen: 647

  • Private Nachricht senden

17

Samstag, 8. Oktober 2011, 13:43

IMO behindert man sich mit diesem Tut mehr, als dasses einem nützen kann.
Wer wird denn ernsthaft mit DataReader und DBCommand einzelne Datensätze lesen und schreiben wollen, wenn man mit einem DataAdapter ganze Dataset-Tabellen mit einem Befehl befüllt und mit einem(!) anderen Befehl alle Änderungen synchronisiert (D.h. Insert, Delete und Update-Command für alle vom User angefassten Datensätze korrekt aufrufen)
?

Mikeradtke

Registrierter Benutzer

  • »Mikeradtke« ist männlich

Beiträge: 65

Dabei seit: 22. Dezember 2010

  • Private Nachricht senden

18

Donnerstag, 12. Januar 2012, 19:45

Noch ne Frage an dich, wenn ich alles mach bekomm ich den Fehler(Anhang)

Wie kann ich den Beheben, hab schon mal ein Thread geöffnet, jetzt hab ich es so gemacht wie du, aber kommt immer noch der Fehler ://
»Mikeradtke« hat folgendes Bild angehängt:
  • Unbenannt112.PNG
Grafiken, Logos und Designs für eure Homepage + erstellung eurer Homepage mit .co.de oder .de.ht Domain. Kostenlos!

:thumbsup: http://mkey-design.co.de/ :thumbsup:

Social Bookmarks