vb@rchiv
VB Classic
VB.NET
ADO.NET
VBA
C#
NEU! sevCoolbar 3.0 - Professionelle Toolbars im modernen Design!  
 vb@rchiv Quick-Search: Suche startenErweiterte Suche starten   Impressum  | Datenschutz  | vb@rchiv CD Vol.6  | Shop Copyright ©2000-2024
 
zurück

 Sie sind aktuell nicht angemeldet.Funktionen: Einloggen  |  Neu registrieren  |  Suchen

VB.NET - Fortgeschrittene
SQL Insert 
Autor: crivi
Datum: 06.01.04 17:10

Hallo zusammen

wie kann ich in eine SQL Tabelle was reinschreiben?

Habt ihr ein Beispiel?

danke
Themenbaum einblendenGesamtübersicht  |  Zum Thema  |  Suchen

Re: SQL Insert 
Autor: crivi
Datum: 06.01.04 17:22

was bedeutet das "@Item" in dieser Abfrage?
myAdapter.InsertCommand.Parameters.Add("@Item", SqlDbType.VarChar, "50" "Item")
Danke
Themenbaum einblendenGesamtübersicht  |  Zum Thema  |  Suchen

Re: SQL Insert 
Autor: waYne
Datum: 06.01.04 18:48

Hi crivi...

hier mal ein bsp...:

'SQLCommand instanzieren
Dim sqlcmd As New SqlClient.SqlCommand()
 
'Dem SQLCommand eine Connection zuweisen
sqlcmd.Connection = sqlConn
 
'Die Übergabeparameter des SQLCommands plätten
sqlcmd.Parameters.Clear()
 
'... und neu setzen (in der Klammer hinter dem @ ist das Tabellenfeld, hinterm 
' Komma der Wert, der in dieses Feld geschrieben werden soll)
 
sqlcmd.Parameters.Add("@kdnr", cint(txtkundennr.text))
sqlcmd.Parameters.Add("@belegnr", txtname.text)
 
 
'Den SQL-String im CommandText-Property setzen
sqlcmd.CommandText = "Insert into kunden(kdnr, name) values (@kdnr, @name)"
 
'Connection des Commands öffnen
sqlcmd.Connection.Open()
 
'SQL-Abfrage starten (NonQuery weil keine Resultate geliefert werden)
sqlcmd.ExecuteNonQuery()
 
'Connection des Commands schließen
sqlcmd.Connection.Close()
OK?

Gruß
Themenbaum einblendenGesamtübersicht  |  Zum Thema  |  Suchen

Re: SQL Insert 
Autor: WaldiMaywood
Datum: 06.01.04 18:50

Der SQL String der in "myAdapter.InsertCommand.CommandText" gespeichert ist, enthält nur die Platzhalter (@Item).
Die Methode "myAdapter.InsertCommand.ExecuteNonQuery()" ersetzt diese Platzhalter gegen die Werte ("Item") und generiert eine "richtigen" Update SQL String.

steve
Themenbaum einblendenGesamtübersicht  |  Zum Thema  |  Suchen

Re: SQL Insert (@) 
Autor: Star
Datum: 06.01.04 18:58

Mit dem -Zeichen werden in (MS)-SQL Parameter oder wenn du so willst, Variablen gekennzeichnet. Im Code von waYne werden diesen Variablen mit der ADD-Methode erst Werte zugewiesen, die anschließend im Command ersetzt werden.

Star

Murphy:
 1.) Nichts ist so leicht wie es aussieht!
 2.) Alles dauert l?nger als du denkst!
 3.) Alles, was schief gehen kann, geht schief!
Themenbaum einblendenGesamtübersicht  |  Zum Thema  |  Suchen

Re: SQL Insert 
Autor: crivi
Datum: 07.01.04 08:21

hallo zusammen

danke für die Tolle Hilfe.

Aber in dem Beispiel:

Muss der in der nicht so heissen: sqlcmd.CommandText = "Insert into kunden(kdnr, belegnr) values (@kdnr, @belegnr)"
Themenbaum einblendenGesamtübersicht  |  Zum Thema  |  Suchen

Re: SQL Insert 
Autor: crivi
Datum: 07.01.04 08:27

und wenn ich einen Datensatz updaten will. Mache ich das genau gleich, einfach anstatt Insert schreibe ich Update?

Danke
Themenbaum einblendenGesamtübersicht  |  Zum Thema  |  Suchen

Re: SQL Insert 
Autor: waYne
Datum: 07.01.04 10:22

jop hab ich übersehen... sorry

aber... du kannst dir den sqlstring zum update, insert oder delete auch dynamisch mittels eines sqlcommandbuilders erstellen lassen... :

bsp aus der m$ kb:
Dim cn As New SqlConnection()
        Dim custDS As New DataSet()
        Dim da1 As New SqlDataAdapter()
        Dim da2 As New SqlDataAdapter()
        Dim dr As DataRow
        Dim cb As SqlCommandBuilder
 
        cn.ConnectionString = _
          "server=servername;database=northwind;uid=sa;pwd=password;"
        cn.Open()
        da1 = New SqlDataAdapter("select * from Customers", cn)
        cb = New SqlCommandBuilder(da1)
 
        da1.Fill(custDS, "Customers")
 
        'Get the original commands.
 
        da1.InsertCommand = cb.GetInsertCommand
        da1.DeleteCommand = cb.GetDeleteCommand
        da1.UpdateCommand = cb.GetUpdateCommand
 
        Debug.WriteLine("Original command length: " & _
          da1.InsertCommand.CommandText.Length)
 
        'Modify the Insert command.
 
        da1.InsertCommand.CommandText = "select * from customers where" & _
          "customerid=@@identity"
 
        da1.InsertCommand.UpdatedRowSource = UpdateRowSource.FirstReturnedRecord
 
        da2.InsertCommand = da1.InsertCommand
        da2.DeleteCommand = da1.DeleteCommand
        da2.UpdateCommand = da1.UpdateCommand
 
        'Add a record to the table.
 
        Dim tblCust As DataTable
        tblCust = custDS.Tables("Customers")
 
        Dim drCust As DataRow
 
        drCust = tblCust.NewRow()
        drCust("CustomerID") = "ZYYYY"
        drCust("CompanyName") = "Zora's Yummies"
        drCust("ContactName") = "Christophe Namby"
        drCust("ContactTitle") = "Assistant Manager"
 
        tblCust.Rows.Add(drCust)
 
        'Update the backend.
 
        Debug.WriteLine("Length da1 before insert: " & _
          da1.InsertCommand.CommandText.Length)
 
        da1.Update(custDS, "Customers")
 
        Debug.WriteLine("Length da1 after insert: " & _
          da1.InsertCommand.CommandText.Length)
        Debug.WriteLine("length da2 before insert: " & _
        da2.InsertCommand.CommandText.Length)
 
        da2.Update(custDS, "Customers")
 
        Debug.WriteLine("Length da2 after insert: " & _
          da2.InsertCommand.CommandText.Length)
Themenbaum einblendenGesamtübersicht  |  Zum Thema  |  Suchen

Sie sind nicht angemeldet!
Um auf diesen Beitrag zu antworten oder neue Beiträge schreiben zu können, müssen Sie sich zunächst anmelden.

Einloggen  |  Neu registrieren

Funktionen:  Zum Thema  |  GesamtübersichtSuchen 

nach obenzurück
 
   

Copyright ©2000-2024 vb@rchiv Dieter Otter
Alle Rechte vorbehalten.
Microsoft, Windows und Visual Basic sind entweder eingetragene Marken oder Marken der Microsoft Corporation in den USA und/oder anderen Ländern. Weitere auf dieser Homepage aufgeführten Produkt- und Firmennamen können geschützte Marken ihrer jeweiligen Inhaber sein.

Diese Seiten wurden optimiert für eine Bildschirmauflösung von mind. 1280x1024 Pixel