Home Page
Articoli
Tips & Tricks
News
Forum
Archivio Forum
Blogs
Sondaggi
Rss
Video
Utenti
Chi Siamo
Contattaci
Username:
Password:
Login
Registrati ora!
Recupera Password
Home Page
Stanze Forum
SQL Server 2000/2005/2008, Express, Access, MySQL, Oracle
Aggiungere righe
giovedì 05 gennaio 2006 - 21.03
Elenco Threads
Stanze Forum
Aggiungi ai Preferiti
Cerca nel forum
diska
Profilo
| Newbie
31
messaggi | Data Invio:
gio 5 gen 2006 - 21:03
ciao a tutto come faccio ad aprire una tabella e aggiungere righe?
in vb6 usa to
conn.open ...
rs.open "tabella",conn
rs.addnew ...
non voglio usare insert ecce cc
Cteniza
Profilo
| Guru
1.509
messaggi | Data Invio:
gio 5 gen 2006 - 22:51
Beh quello che sapevi con vb6 "tienlo buono solo per i ricordi".
La maggiore variazione (o almeno il maggiore impatto) per vb.net è appunto la gestione dei dati.
Ti consiglio di prendere un buon manuale di ADO.NET (quello di Sheppa o quello della Wrox ad esempio) e guardare gli esempi che trovi presso microsoft o gli innumerevoli siti che parlano di .NET e/o di ADO.NET.
Tanto per rispondere alla tua domanda uno dei modi di aggiungere una riga è (ammettendo di non avere gestito il binding):
Dim dr As DataRow = myTable.NewRow()
dr("codice") = TextBox1.Text
dr("Descrizione") = TextBox2.Text
myTable.Rows.Add(dr)
diska
Profilo
| Newbie
31
messaggi | Data Invio:
ven 6 gen 2006 - 01:05
ok fin qui c'ero arrivato anche io
il mio prob è questo
come faccio a dire che quella tabella è la mia tabella sul db?
a collegarla a una connessione insomma.
e soprattutto a fare l'update della tabella "disconnessa" sulla tabella "su disco"
Cteniza
Profilo
| Guru
1.509
messaggi | Data Invio:
ven 6 gen 2006 - 08:01
Renditi conto che l'argomento è troppo vasto per essere espresso in una risposta.
Dim ds As DataSet
ds = New DataSet("Dati")
Dim cn As New OleDbConnection("Provider ...")
Dim cm As New OleDbCommand("SELECT ...",cn)
Dim da As New OleDbDataAdapter()
da.SelectCommand = cm
Dim cmb As New OleDbCommandBuilder(da)
da.Fill(ds,"myTable")
....
Fai i tuoi inserimenti alla fine dei quali per riscrivere nel database le variazioni:
da.Update(ds)
diska
Profilo
| Newbie
31
messaggi | Data Invio:
ven 6 gen 2006 - 12:06
Dim conn As New System.Data.SqlClient.SqlConnection
Dim builder As New System.Data.SqlClient.SqlConnectionStringBuilder()
builder.DataSource = ".\SQLEXPRESS"
builder.AttachDBFilename = "|DataDirectory|ASPNETDB.MDF"
builder.IntegratedSecurity = True
builder.UserID = "server\user"
builder.UserInstance = True
conn.ConnectionString = builder.ConnectionString
conn.Open()
Dim adap As New System.Data.SqlClient.SqlDataAdapter("select * from vettore ", conn)
Dim ds As New System.Data.DataSet()
adap.Fill(ds, "vettore")
Dim tmpv As System.Data.DataRow
Dim tbvettore As New System.Data.DataTable
tbvettore = ds.Tables("vettore")
For i = 0 To vett_valori.GetUpperBound(0) - 1
If (vett_valori(i) <> 0) Then
tmpv = tbvettore.NewRow()
tmpv("indice") = i
tmpv("valore") = vett_valori(i)
tbvettore.Rows.Add(tmpv)
End If
Next i
qui ho provato sia con
adap.Update(ds)
sia con
adap.Update(ds."vettore")
mi da "Update unable to find TableMapping['Table'] or DataTable 'Table'."
diska
Profilo
| Newbie
31
messaggi | Data Invio:
dom 8 gen 2006 - 14:54
ecco la parte mancante da usare prima di richiamare l'update
Dim sqlcb As New System.Data.SqlClient.SqlCommandBuilder(adap)
'sqlcb.DataAdapter = adap
adap.UpdateCommand = sqlcb.GetUpdateCommand()
adap.InsertCommand = sqlcb.GetInsertCommand()
'adap.DeleteCommand = sqlcb.GetDeleteCommand()
Cteniza
Profilo
| Guru
1.509
messaggi | Data Invio:
dom 8 gen 2006 - 15:12
Se usi il commandbuilder non serve utilizzare i getcommands, quindi li puoi togliere.
Per scrivere nel tuo dataset/datatable hai l'oggetto datarow, collection che appartiene alla datatable (che a sua volta è una collection che appartiene al dataset).
Quindi per inserire dei dati nel dataset / datatable:
Dim dr As DataRow = myDataset.Tables("mytable").NewRow
dr("campo1") = valore
dr("campo2") = valore
myDataSet.Tables("myTable").Rows.Add(dr)
Per modificare una riga:
Dim dr As DataRow = myDataset.Tables("mytable").Rows(0) 'modifica la prima riga
dr("campo1") = valore
Per cancellare una riga
myDataSet.Tables("myTable").Rows(0).Delete() ' cancella la prima riga
Poi per riversare le modifiche sul database origine dati devi fare:
myDataAdapter.Update(myDataSet)
diska
Profilo
| Newbie
31
messaggi | Data Invio:
dom 8 gen 2006 - 23:14
molte grazie una cosa come faccio a dire che la mia tabella ne dataset esiste e non la creo?
se so che voglio solo inserire dei dati come devo impostare il dataadapter?
io per ora ho messo la select con un where sempre falso cosi mi da una tabella vuota e faccio gli add :D visto che non mi servono i dati già presenti in memoria
Cteniza
Profilo
| Guru
1.509
messaggi | Data Invio:
lun 9 gen 2006 - 22:52
1) verificare già esistente prima di inserimento
(avviso che ci sono anche altri metodi)
Dim dr() As DataRow = myDataSet.Tables("myTable").Select("CampoChiave = " & TextBox1.Text)
If Not dr Is Nothing Then
MessageBox.Show(".... esistente")
End If
2) fare anche le variazioni
Per prima cosa devi generare il dataadapter in tutti i suoi command
alternative (dalla più difficile alla più facile)
- scrivi nel tuo programma il codice per i comandi SQL SELECT UPDATE, INSERT, DELETE rispettivamente per SelectCommand, UpdateCommand, InsertCommand, DeleteCommand (naturalmente completi di connessione e parametri)
- scrivi nel tuo dataadapter il tuo SelectCommand (solo il testo del comando), definisci un CommandBuilder e poi usi i 3 comandi "GetUpdateCommand, GetInsertCommand, GetDeleteCommand" per generare i rispettivi comandi del dataadapter.
- scrivi nel tuo dataadapter il tuo SelectCommand e poi lo dai in pasto al commandbuilder:
Dim cmb As new SqlCommandBuilder(myDataAdapter)
Torna su
Stanze Forum
Elenco Threads
Partecipa anche tu! Registrati!
Hai bisogno di aiuto ?
Perchè non ti registri subito?
Dopo esserti registrato potrai chiedere
aiuto sul nostro
Forum
oppure aiutare gli altri
Consulta le
Stanze
disponibili.
Registrati ora !