| |
VB.NET - FortgeschritteneSQL 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 | |
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 | |
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ß | |
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 | |
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! | |
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)" | |
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 | |
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) | |
| 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 |
|
|
vb@rchiv CD Vol.6 vb@rchiv Vol.6
Geballtes Wissen aus mehr als 8 Jahren vb@rchiv!
Online-Update-Funktion Entwickler-Vollversionen u.v.m.Jetzt zugreifen Tipp des Monats sevOutBar 4.0
Vertikale Menüleisten á la Outlook
Erstellen von Outlook ähnlichen Benutzer- interfaces - mit beliebig vielen Gruppen und Symboleinträgen. Moderner OfficeXP-Style mit Farbverläufen, Balloon-Tips, u.v.m. Weitere Infos
|
|
|
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
|
|