Salve a tutti...ho un problema che non riesco a risolvere,in pratica questo è il mio codice con cui inserisco dati in una tabella collegata ad un altra in relazione uno a molti.
Il problema è l errata gestione dell ID,e spero qualcuno possa risolvere i miei dubbi
L id nella tabella editori è una var autoincrementante,mentre quella dei libri è testuale
In pratica il risultato dell id mi vale sempre 0 e non capisco dove sia l errore.Ho commentato il codice quindi dovrebbe essere molto chiaro ...grazie![]()
codice:Private Sub Button3_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button3.Click Dim last_id As Object Dim con_string As String = "Provider=Microsoft.Jet.OLEDB.4.0;Data Source=|DataDirectory|\prova.mdb" ' Apro una connessione col database Dim conn_contab As New OleDb.OleDbConnection(con_string) conn_contab.Open() ' Operazione di INSERT di un nuovo editore Dim cmd As New OleDbCommand( _ "INSERT INTO editori (nome) " & _ "VALUES (?)", _ conn_contab) cmd.Parameters.Add(New OleDbParameter("nome", TextBox1.Text)) ' Prelevo l ID dell editore inserito Dim preleva_id As New OleDbCommand( _ "SELECT @@identity from editori", conn_contab) preleva_id.CommandType = CommandType.Text last_id = preleva_id.ExecuteScalar() MsgBox(last_id) ' Operazione di INSERT di un nuovo libro con ID editore aggiornato Dim cmd2 As New OleDbCommand( _ "INSERT INTO libri (isbn,titolo,id_editore) " & _ "VALUES (?,?,?)", _ conn_contab) cmd2.Parameters.Add(New OleDbParameter("isbn", TextBox2.Text)) cmd2.Parameters.Add(New OleDbParameter("titolo", TextBox3.Text)) cmd2.Parameters.Add(New OleDbParameter("id_editore", last_id)) ' Eccezioni Try cmd.ExecuteNonQuery() Catch ex As Exception MessageBox.Show(ex.Message) End Try ' Salva Me.Validate() Me.EditoriBindingSource.EndEdit() Me.TableAdapterManager.UpdateAll(Me.ProvaDataSet) 'Svuota le caselle di testo TextBox1.Text = "" TextBox2.Text = "" TextBox3.Text = "" ' Chiudi la connessione conn_contab.Close() conn_contab.Dispose() 'Refresh dei DataGridView Me.EditoriTableAdapter.Fill(Me.ProvaDataSet.editori) Me.LibriTableAdapter.Fill(Me.ProvaDataSet.libri) Me.JoinTableAdapter.Fill(Me.ProvaDataSet.join) 'Fa ripartire la combobox a valore nullo ComboBox1.SelectedIndex = -1

Rispondi quotando
) volevo inserire un libro dato un editore esistente.In questo invece devo inserirne uno nuovo non presente nella tabella
