Aiutatemi per piacere sto impazzendo

mercoledì 17 febbraio 2010 - 08.47

scevola Profilo | Newbie

ho provato in tutti i modi ad inserire dati in una tabella di database mdf o sdf , mi aggiorna solo il dataset , la tabella del database sempre vuota
vi posto i button con tutte le provedure che ho usato ma è così difficile fare una insert in vb.net?
Public Class Form1

Private Sub Form1_Load(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles MyBase.Load
'TODO: questa riga di codice carica i dati nella tabella 'Database1DataSet.terreno'. È possibile spostarla o rimuoverla se necessario.
Me.TerrenoTableAdapter1.Fill(Me.Database1DataSet.terreno)
'TODO: questa riga di codice carica i dati nella tabella 'DataSet1.terreno'. È possibile spostarla o rimuoverla se necessario.
Me.TerrenoTableAdapter.Fill(Me.DataSet1.terreno)

End Sub

Private Sub Button1_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button1.Click
Try
TerrenoTableAdapter.Insert(12, "ProvaDataGridViewTextBoxColumn")
DataSet1.AcceptChanges()
Catch ex As Exception
MsgBox(ex.Message)
End Try
End Sub

Private Sub Button2_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button2.Click
Dim sql As String
Dim conn As New System.Data.SqlClient.SqlConnection("Data Source=|DataDirectory|\Database1.sdf;Initial Catalog=terreno;Integrated Security=True")
Try
conn.Open()


sql = "INSERT INTO terreno (campo1,campo2) VALUES (2,valore2)"
Dim d As New System.Data.SqlClient.SqlConnection
Dim cmd As New SqlCommand(sql, conn)

cmd.ExecuteNonQuery()
conn.Close()
Catch ex As Exception
MsgBox(ex.Message)
End Try

End Sub

Private Sub Button3_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button3.Click

Dim sql As String = "INSERT INTO terreno (ID,prova) VALUES (2,'valore2')"
Dim conn As New System.Data.SqlClient.SqlConnection("Data Source=.\SQLEXPRESS;AttachDbFilename=|DataDirectory|\Database1.mdf;Integrated Security=True;User Instance=True")
Dim cmd As New SqlCommand(sql, conn)

Try

conn.Open()


'sql = "INSERT INTO terreno (ID,prova) VALUES (2,'valore2')"


cmd.ExecuteNonQuery()
conn.Close()



'TerrenoTableAdapter1.Insert(12, "Prova")
'TerrenoTableAdapter1.Adapter.InsertCommand.CommandText = "INSERT INTO terreno (ID,prova) VALUES (2,'valore2')"
'TerrenoBindingSource1.AddNew()
'Database1DataSet.AcceptChanges()
Catch ex As Exception
MsgBox(ex.Message)
End Try
End Sub

Private Sub Button4_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button4.Click
Dim dr As DataRow = DataSet1.Tables("Terreno").NewRow
dr.Item("ID") = 4
dr.Item("prova") = "NCD"

DataSet1.Tables("Terreno").Rows.Add(dr)
Me.TerrenoTableAdapter1.Fill(Me.Database1DataSet.terreno)
'DataSet1.Tables("Terreno").AcceptChanges()
End Sub
End Class

alexmed Profilo | Guru

Ciao
Non ho verificato il codice che hai scritto, ma a prima vista sembrerebbe corretto.
Quando crei un progetto che si appoggia ad un db SQL, visual basic oltre a creare il db originale ne crea una copia diciamo temporanea.
Prova a controllare nelle varie cartelle del progetto: troverai due db.mdf.
Per salvare realmente i dati nel db prova ad eseguire il file exe che trovi all'interno della cartella \bin\Debug del tuo progetto.

Ciao


alexmed

Jok83 Profilo | Junior Member

Ciao Scevola
a prima vista anche a me non sembra ci siano problemi, non ti ritorna errori, l'unica cosa io abitualmente uso la cmd.executereader() ma nn credo sia quello.
la executenonquery() dovrebbe tornarti il numero di righe modificate se fai un insert,delete,update quindi se l'assegni a una variabile dovresti vedere in debug se vai modificare qualcosa...

scevola Profilo | Newbie

grazie per le risposte ,
erano 2gg che uscivo pazzo,
ho provato ad aprire come mi avete suggerito,il file sdf dell'app compilata , e lì la aggiorna correttamente.
Ma secondo voi non doveva aggiornare anche in ambiente di sviluppo?
grazie ancora

alexmed Profilo | Guru

Ciao
La possibilità di salvare esiste ma personalmente trovo utile il fatto di operare in un db temporaneo per poi ritrovarsi un db "vergine" quando pubblichi il progetto e che comunque in caso di errore ti viene segnalato ugualmente.

Se selezioni il database da "Esplora soluzione" e guardi tra le proprietà, troverai che la prima voce recita: "Copia nella directory di output" con un valore impostato su "Copia sempre". Prova a modificare con "Non copiare".

Ciao

alexmed

scevola Profilo | Newbie

grazie mille a tutti

alexmed Profilo | Guru

Bene, se hai altre domande chiedi pure altrimenti chiudi il post cliccando su "Accetta"

Ciao

alexmed
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 !
Copyright © dotNetHell.it 2002-2017
Running on Windows Server 2008 R2 Standard, SQL Server 2012 & ASP.NET 3.5