tutorials.de Buch-Aktion 05/2012
ERLEDIGT
JA
ANTWORTEN
14
ZUGRIFFE
5343
EMPFEHLEN
  • An Twitter übertragen
  • An Facebook übertragen
AUF DIESES THEMA
ANTWORTEN
  1. #1
    bomber080674 bomber080674 ist offline Mitglied
    Registriert seit
    Apr 2005
    Beiträge
    22
    Hallo Zusammen.

    Ich bräuchte mal eure Hilfe! Ich versuche aus einen Formular in vb.net einen neuen Eintrag in meiner adressenmdb eintzutragen schaffe es aber überhaupt nicht. Auch durch durch´stöbern mehrer Bücher wird leider nur erklärt wie ich Daten anzeigen kann aber nicht ändern, neu einfügen oder Löschen. Könnt ihr mir einen Tipp geben wie ich diese Aktion über vb.net löse oder zumindest einen vernünftigen Buch-Tipp geben?

    Mein Versuch zu Eintragung eines neuen Datensatzes sieht wie folgt aus:
    Code :
    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
            ' Verbindung zu Datenbank
            Dim vorname As String
            Dim name As String
     
            name = TextBox1.Text
            vorname = TextBox2.Text
     
            Dim conn As New OleDb.OleDbConnection("Provider=Microsoft.Jet.OLEDB.4.0;" & _
            "Data Source =adressenmdb.mdb;" & "User ID = Admin;")
            ' Der Datenadapter
            Dim daadresse As New OleDb.OleDbDataAdapter("Insert into pers values('',name,vorname)", conn)
           
            conn.Close()
     
     
     end sub

    Für eine Antwort wäre ich euch sehr sehr dankbar

    Gruss Mike
     

  2. #2
    mupa0013 mupa0013 ist offline Mitglied Bronze
    Registriert seit
    Feb 2005
    Beiträge
    27
    Hi,

    um daten zu ändern brauchst du ein Statement (zumindest ist das in Java so),
    also stmt =con.createStatement();

    und dann würde ich ein Methode verwenden:

    Achtung Java

    void aendern(String pSQL)
    {
    try
    {
    stmt.executeUpdate(pSQL);
    }
    catch(SQLException err)
    {
    System.err.println(err);
    }
    }

    Sorry VB kann ich nicht.

    versuchs mal

    Gruß Patricia
     

  3. #3
    bomber080674 bomber080674 ist offline Mitglied
    Registriert seit
    Apr 2005
    Beiträge
    22
    Vielen Lieben Dank für deine Bemühungen!

    Nur Java hilft mir nicht wirklich viel weiter, da ich esauch in PHP 100 % umsetzen kann. Es geht mir nur um vb.net!

    Danke aber trotzdem

    Gruss Mike
     

  4. #4
    Avatar von mage
    mage mage ist offline Mitglied Platin
    Registriert seit
    May 2002
    Ort
    Berliner Speckgürtel
    Beiträge
    707
    Du solltest trotzdem um deine Adapteranweisung ein try catch Block anlegen und Dir die Fehlermeldung ausgeben lassen.
     
    Allen ist das Denken erlaubt, vielen bleibt es erspart. (Kurt Goetz)

  5. #5
    Avatar von mage
    mage mage ist offline Mitglied Platin
    Registriert seit
    May 2002
    Ort
    Berliner Speckgürtel
    Beiträge
    707
    Im Übrigen wird ein DataAdapter dazu verwendet, um eine Verbindung zwischen einem Datenset oder einer Datetable herzustellen.

    Für das Einfügen eines Datensätzen solltest Du das OleDBCommand Objekt verwenden.
    Siehe : OleDBCommand.ExecuteNonQuery
     
    Allen ist das Denken erlaubt, vielen bleibt es erspart. (Kurt Goetz)

  6. #6
    bomber080674 bomber080674 ist offline Mitglied
    Registriert seit
    Apr 2005
    Beiträge
    22
    Hilft mir leider nichjt wirklich weiter! Da ich immer noch keine genauen Angabe finde!

    Könnt ihr mir nicht anhand meines og. Beispieles den Code herrichten?

    Wäre super nett von euch!
    Danke Mike
     

  7. #7
    Avatar von Norbert Eder
    Norbert Eder Norbert Eder ist offline Mitglied Diamant
    Registriert seit
    Feb 2004
    Ort
    Österreich / Graz
    Beiträge
    5.137
    Blog-Einträge
    51
    Tut mir leid, aber fix fertig wird dir das hier niemand liefern, dafür ist die Community auch nicht da.

    Aber du kannst es in etwa so machen (Beispielcode, muss noch angepasst werden):

    Code :
    1
    2
    3
    
    Dim OleDbConnection conn as new OleDbConnection(connectionString)
    Dim OleDbCommand com As new OleDbCommand("insert into ....", conn)
    com.ExecuteNonQuery()

    Genauere Informationen kannst du in der MSDN (http://msdn.microsoft.com) nachlesen (nach OleDbConnection und OleDbCommand suchen - dort gibts auch Beispiele).
     

  8. #8
    bomber080674 bomber080674 ist offline Mitglied
    Registriert seit
    Apr 2005
    Beiträge
    22
    Ok!

    Aber wenn ich dieses so umsetze erhalte ich folgende Fehlermeldung

    'System.Data.OleDb.OleDbException' ist in system.data.dll aufgetreten.

    Gruss Mike
     

  9. #9
    Avatar von JensG
    JensG JensG ist offline Mitglied Platin
    Registriert seit
    Jun 2004
    Ort
    Gera (Thüringen)
    Beiträge
    517
    Hi,

    das SQL Commando sollte anders aussehen.
    Wie ist die Tabelle aufgebaut ?

    Code :
    1
    2
    3
    4
    5
    
     
    name = Replace(TextBox1.Text,"''","'")
    vorname = Replace(TextBox2.Text,"''","'")
     
    Dim OleDbCommand com As new OleDbCommand("Insert into pers values (' ',' " & name & " ',' " & vorname & " ' )", conn)

    Wenn deine Tabelle nur zwei Spalten hat, also Name und Vorname dann sollte es so aussehen, denn das ' ' hat mich bissel verwirrt. Kann ja sein das es wirklich ne dritte Spalte gibt. Wenn diese ein VChar oder String Typ ist musst du diese entweder mit einem Blank ' ' füllen oder die gibst im SQL Command die Spalten mit an.

    Außerdem müssen String/Textfelder immer zwischen Hochkommas stehen. Wenn
    schon im name oder vorname eins auftaucht muss diese mit Replace wie oben verdoppelt werden.

    Code :
    1
    2
    3
    4
    5
    
     
    name = Replace(TextBox1.Text,"''","'")
    vorname = Replace(TextBox2.Text,"''","'")
     
    Dim OleDbCommand com As new OleDbCommand("Insert into pers (name,vorname) values ( ' " & name & " ',' " & vorname & " ' )", conn)

    Jens
     

  10. #10
    bomber080674 bomber080674 ist offline Mitglied
    Registriert seit
    Apr 2005
    Beiträge
    22
    Hallo!

    Die Tabelle hat 3 felder

    adressid als autowert und primary key
    adr_name
    adr_vorname

    Ich habe den ersten eintrag im '' geschrieben da er ja automatisch gefüllt wird!

    Nun habe ich ein problem mit den Befehl
    <code>
    Dim OleDbcommand com As new OleDbCommand("Insert into pers (name,vorname) values ( ' " & name & " ',' " & vorname & " ' )", conn)

    </code>

    Er schreibt mir das eine End Of anweisung erwartet wird.

    Danke Mike
     

  11. #11
    Julian Maicher Julian Maicher ist offline Mitglied Smaragd
    Registriert seit
    Jan 2004
    Ort
    Paderborn
    Beiträge
    1.210
    Das ist ja auch ein falscher Syntax.
    Sieht mir nach einer Mischung zwischen C# und VB.NET aus
    Code :
    1
    
    Dim com As new OleDbCommand("Insert into pers (name,vorname) values ( ' " & name & " ',' " & vorname & " ' )", conn)
     

  12. #12
    bomber080674 bomber080674 ist offline Mitglied
    Registriert seit
    Apr 2005
    Beiträge
    22
    OleDbcommand ist nicht definiert!

    Kan es sein das anstatt der new OleDbCommand durch new OleDb.OleDbadapter ersetzt werden muss?
    danke Mike
     

  13. #13
    bomber080674 bomber080674 ist offline Mitglied
    Registriert seit
    Apr 2005
    Beiträge
    22
    Also ich´musste das so machen
    Code :
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    
     
     
     Dim vorname As String
            Dim name As String
     
            name = Replace(TextBox1.Text, "''", "'")
            vorname = Replace(TextBox2.Text, "''", "'")
     
            Dim conn As New OleDb.OleDbConnection("Provider=Microsoft.Jet.OLEDB.4.0;" & _
            "Data Source =adressenmdb.mdb;" & "User ID = Admin;")
     
     
            Dim com As New OleDb.OleDbDataAdapter("Insert into pers (adr_name,adr_vorname) values ( ' " & name & " ',' " & vorname & " ' )", conn)

    Jetzt bekomme ich aus keine Fehlermeldung mehr nur er trägt aber auch nichts ein

    Warum?

    Danke Mike
     

  14. #14
    Julian Maicher Julian Maicher ist offline Mitglied Smaragd
    Registriert seit
    Jan 2004
    Ort
    Paderborn
    Beiträge
    1.210
    Du musst natürlich zuerst die Connection öffnen.
    Code :
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    
     
            Dim vorname As String
            Dim name As String
     
            name = Replace(TextBox1.Text, "''", "'")
            vorname = Replace(TextBox2.Text, "''", "'")
     
            Dim conn As New OleDb.OleDbConnection("Provider=Microsoft.Jet.OLEDB.4.0;" & _
            "Data Source =adressenmdb.mdb;" & "User ID = Admin;")
    Try
            conn.open
            Dim com As New OleDb.OleDbDataAdapter("Insert into pers (adr_name,adr_vorname) values ( ' " & name & " ',' " & vorname & " ' )", conn)
    Catch err As OleDb.OleDbException
             Messagebox.show(err.tostring)
    Finally
            conn.close
    End Try
    Geändert von Julian Maicher (21.04.05 um 20:56 Uhr)
     

  15. #15
    bomber080674 bomber080674 ist offline Mitglied
    Registriert seit
    Apr 2005
    Beiträge
    22
    Danke für eure Mühe an allen Beteiligten!

    Ich habe mein Problem gelöst und kann jetzt endlich Daten in einer Access DB über vb.net füllen


    Grüsse Mike
     

Ähnliche Themen

  1. Antworten: 3
    Letzter Beitrag: 28.06.05, 15:03
  2. Antworten: 4
    Letzter Beitrag: 23.06.05, 08:35
  3. Daten über TCP/IP in einer Datenbank ablegen
    Von HIDA im Forum Relationale Datenbanksysteme
    Antworten: 1
    Letzter Beitrag: 04.01.05, 22:24
  4. Antworten: 3
    Letzter Beitrag: 11.08.04, 10:04