Daten in einer Access datenbank über Formular eintragen

bomber080674

Mitglied
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:
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
 
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
 
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
 
Du solltest trotzdem um deine Adapteranweisung ein try catch Block anlegen und Dir die Fehlermeldung ausgeben lassen.
 
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
 
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
 
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:
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).
 
Ok!

Aber wenn ich dieses so umsetze erhalte ich folgende Fehlermeldung

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

Gruss Mike
 
Hi,

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

Code:
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:
name = Replace(TextBox1.Text,"''","'")
vorname = Replace(TextBox2.Text,"''","'")

Dim OleDbCommand com As new OleDbCommand("Insert into pers (name,vorname) values ( ' " & name & " ',' " & vorname & " ' )", conn)

Jens
 
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
 

Neue Beiträge

Zurück