|
|
|
![]() |
|
Strumenti |
![]() |
#1 |
Senior Member
Iscritto dal: Feb 2003
Messaggi: 2805
|
[VB.NET] Inserire un nuovo record
Per inserire un nuovo record posso seguire questa sintassi:
Dim command As New OleDb.OleDbCommand command = New OleDbCommand("INSERT INTO DvdStorico (Titolo,NCD) VALUES(?,?)", Conn) command.Parameters.Add("@Titolo", OleDbType.Char, 50).Value = Me.txtTitolo.Text command.Parameters.Add("@NCD", OleDbType.Char, 50).Value = Me.txtNCD.Text command.ExecuteNonQuery() ------------------------------------------------------------- cosi facendo scrivo direttamente nel DB, però se ho una griglia con i dati non mi vengono agiornati. Oppure posso inserire un nuovo record nel dataset e poi fare l'UPDATE di tutto il dataset 1) Come faccio nel primo casa ad aggirornare una griglia inserendo direttamente il record nel DB 2) Qual'è la strada migliore per inserire un nuovo record?? Scriverlo direttamente nel db oppure salvarlo nel dataset e aggiornare il tutto. Ciao e grazieeeeeeeeeeee
__________________
AMD 3700x --- ASUS X570 CROSSHEAR VIII HERO --- 4x 8GB Corsair Vengeance RGB PRO 3600 MHz --- SSD: Samsung 980Pro 1TBb --- EVGA RTX 2070 SUPER |
![]() |
![]() |
![]() |
#2 | |
Senior Member
Iscritto dal: Nov 2004
Città: TE
Messaggi: 3995
|
Quote:
programmo in C#, ma esso e VB sono molto simili (anche per il fatto che il framework è quello ![]() comunque: Consiglio 1: usa il DataSet il + possibile Consiglio 2: per griglia cosa intendi ? un controllo DataGrid o DataGridview per caso? Quando utilizzo il datagridview, prima agisco sul Dataset, e , successivamente aggiorno il Datasource del datagridview ponendolo uguale al dataset: Ad esempio (in C#, ma è semplicissimo adattarlo a VB): DataSet mioDataSet = new DataSet(); SqlConnection connessione = new SqlConnection(); con.ConnectionString = "stringa di connessione"; SqlCommand com = new SqlCommand("selezione bla bla bla"); SqlDataAdapter adatt = new SqlDataAdapter(); adatt.SelectCommand = com; adatt.Fill(mioDataSet); dataGridView1.DataSource = mioDataSet; dataGridView1.DataMember = mioDataSet.Tables[0].TableName; Potresti anche usare un BindingSource comunque... specie se ti affidi molto al copia/incolla dei controlli WinForms. Spero di esserti stato un minimo d'aiuto ![]()
__________________
Ho concluso positivamente con: Theninja1, Palu15, Dario2, GiovanniCT, Kolzig12, nino.nino, river, LupinRS, Tazmania,RedPrimula,avware,netcrusher,Riki90,tenebrio,athlon87,fausto61 |
|
![]() |
![]() |
![]() |
#3 |
Senior Member
Iscritto dal: Nov 2004
Città: TE
Messaggi: 3995
|
Uhmmm
mi sa che ho dimenticato di scriverti del metodo Refresh e Update di Datagridview... In questo momento sto lavorando su Java e ho perso un pò di smalto su .NEt ![]() Comunque se non risolvi stasera ti controllo dal Pc di casa ![]()
__________________
Ho concluso positivamente con: Theninja1, Palu15, Dario2, GiovanniCT, Kolzig12, nino.nino, river, LupinRS, Tazmania,RedPrimula,avware,netcrusher,Riki90,tenebrio,athlon87,fausto61 |
![]() |
![]() |
![]() |
#4 |
Senior Member
Iscritto dal: Feb 2003
Messaggi: 2805
|
ok
Ok ti ringrazio, ora provo
Cmq tu dici ci aggiungere il record nel dataset e poi fare update del dataset che automaticamente scrive nel DB vero
__________________
AMD 3700x --- ASUS X570 CROSSHEAR VIII HERO --- 4x 8GB Corsair Vengeance RGB PRO 3600 MHz --- SSD: Samsung 980Pro 1TBb --- EVGA RTX 2070 SUPER |
![]() |
![]() |
![]() |
#5 | |
Senior Member
Iscritto dal: Nov 2004
Città: TE
Messaggi: 3995
|
Quote:
Cmq, stasera ti controllo meglio su qualche prog del mio harddisk
__________________
Ho concluso positivamente con: Theninja1, Palu15, Dario2, GiovanniCT, Kolzig12, nino.nino, river, LupinRS, Tazmania,RedPrimula,avware,netcrusher,Riki90,tenebrio,athlon87,fausto61 |
|
![]() |
![]() |
![]() |
#6 | |
Senior Member
Iscritto dal: Feb 2003
Messaggi: 2805
|
Ascolta
Quote:
1) Inserire nuovo record su dataset 2) Modificare un record su dataset 3) Eliminare un record su dataset 4) Aggiornamento del dataset con scrittura su DB Ti ho chiesto troppo???? Se puoi ti ringrazio....se non hai tempo non importa Ciao e grazieeeeeeeee
__________________
AMD 3700x --- ASUS X570 CROSSHEAR VIII HERO --- 4x 8GB Corsair Vengeance RGB PRO 3600 MHz --- SSD: Samsung 980Pro 1TBb --- EVGA RTX 2070 SUPER |
|
![]() |
![]() |
![]() |
#7 | |
Senior Member
Iscritto dal: Nov 2004
Città: TE
Messaggi: 3995
|
Quote:
![]() Ovviamente in C#, ma tanto il procedimento è quello ![]()
__________________
Ho concluso positivamente con: Theninja1, Palu15, Dario2, GiovanniCT, Kolzig12, nino.nino, river, LupinRS, Tazmania,RedPrimula,avware,netcrusher,Riki90,tenebrio,athlon87,fausto61 |
|
![]() |
![]() |
![]() |
#8 |
Senior Member
Iscritto dal: Nov 2004
Città: TE
Messaggi: 3995
|
Allora, ho recuperato adesso un programmino con cui gestisco una libreria semplicissima.
Ho utilizzato il BindingSource. Dunque, l'inserimento, modifica e cancellazione le lascio fare completamente grafiche (ho solo aggiunto un ErrorProvider per gestire obbligatorietà e formato di alcuni campi di testo). Ciò che faccio per conto mio è la Select. Ti incollo un frammento: public void Cerca() { string stringaConnessione = @"Provider=Microsoft.Jet.OLEDB.4.0;Data Source=.\Data\libreria.mdb;"; string query = "Select * from libri where titolo like @titolo " + "AND autori LIKE @autori " + "AND casaed LIKE @casaed "+//+ "AND qta < @qta"; OleDbConnection connessione = new OleDbConnection(stringaConnessione); OleDbDataAdapter adatt = new OleDbDataAdapter(); adatt.SelectCommand = new OleDbCommand(); adatt.SelectCommand.Connection = connessione; adatt.SelectCommand.CommandText = query; DataSet mioDataSet = new DataSet(); // inserisco parametry per query adatt.SelectCommand.Parameters.AddWithValue("titolo", "%"+txtFindTitolo.Text+"%"); adatt.SelectCommand.Parameters.AddWithValue("autori", "%" + txtFindAutori.Text + "%"); adatt.SelectCommand.Parameters.AddWithValue("casaed", "%" + txtFindCasaEd.Text + "%"); if (isNumeric(txtFindQta.Text)) adatt.SelectCommand.Parameters.AddWithValue("qta", Int32.Parse(txtFindQta.Text)); else adatt.SelectCommand.Parameters.AddWithValue("qta", Int32.MaxValue); connessione.Open(); adatt.Fill(mioDataSet, "libri"); connessione.Close(); libriBindingSource.DataSource = mioDataSet; libriDataGridView.DataSource = libriBindingSource; libriDataGridView.Enabled = true; // Visualizzo in textbox il numero di risultati ottenuti textBox1.Text = mioDataSet.Tables[0].Rows.Count.ToString(); } Il libriBindingSource viene creato da VisualStudio.
__________________
Ho concluso positivamente con: Theninja1, Palu15, Dario2, GiovanniCT, Kolzig12, nino.nino, river, LupinRS, Tazmania,RedPrimula,avware,netcrusher,Riki90,tenebrio,athlon87,fausto61 |
![]() |
![]() |
![]() |
Strumenti | |
|
|
Tutti gli orari sono GMT +1. Ora sono le: 23:24.