| 
        
        
        01/03/2013 19:37:13
        
     
        
        
Sono un neofita, avrei bisogno di qualche consiglio da esperti!
     
				 | 
    
				
    
    | 
        
        
        01/03/2013 23:05:09
        
     
        
        
 vai ci penso io.
 Programmo in Java, C# , VB , JavaScript, JQuery, SQL e varie ed eventuali.
 
				 | 
    
				
    
    | 
        
        
        02/03/2013 18:03:30
        
     
        
        
 ... Non ne so un cavolo ma ho un gruppo di programmatori in azienda che si grattano i maroni...
 
 Chiedi e ti sarà data una risposta...
 
 
 
				 | 
    
				
    
    | 
        
        
        02/03/2013 20:06:40
        
     
        
        
Grazie 1000 ragazzi! prima di che mi insultiate vi premetto che sono VERAMENTE alle prime armi, impaziente ho saltato tante lezioni ed ora mi sono davvero incasinato!
 Vorrei collegare i dati da inserire in form ad un database, per far si che i campi digitati nel mio form vengano immagazzinati il database creato in precendenza o (meglio ancora) creato al momento.
 Come CaZpita si fa???
     
				 | 
    
				
    
    | 
        
        
        02/03/2013 20:07:50
        
     
        
        
 Black.Jack , sei un mito!!! spero di aver perso la tua mail!
 
				 | 
    
				
    
    | 
        
        
        02/03/2013 23:27:09
        
     
        
        
db come? sql immagino.
 Che dbms hai per gestire tale db?
 
 Oppure ti appoggi a robetta tipo Derby o un Access volante?
 
 La pratica per inserire dati in un db da form è alquanto banale.
 
 Agirai credo tipicamente da ButtonClick() immagino:
 devi catturare i dati della textbox(o datagridview se carichi dati in tabelle visuali) in una variabile.
 Successivamente crei un`oggetto che contiene la connection string sql e la query d`aggiornamento: una banalissima insert into ... values....
 S si tratta di un campo solo la query sarà una tipica update...set...where.
 
 A dette query aggancerai la tua variabile tramite un`escape qualsiasi.
 
 Fine.
 
 Ricordati di chiudere sempre la connessione sql al termine del suo utilizzo così come liberare le variabili.
 Il garbage collector dovrebbe essere automatico, ma se usi sistemi vecchi, io ce lo metterei.
 
 
 
 
  fai sapere 
				 | 
    
				
    
    | 
        
        
        07/03/2013 20:00:18
        
     
        
        
Grazie 1000 Black.Jack, ci sto provando, ma per ora sto collezionando solo errori.
 Devo agire da buttonclick(), vorrei utilizzare come connessioni dati un database sql (non in rete).
 Avevo studiato un pò di access, ma ho lasciato perdere. Ora sto studiando un pò da libro VB.net ma ancora non sono in grado di effettuare queste operazioni!
 Il problema è che non riesco ad aspettare
  , ho creato una form spartana con una listbox e alcuni combobox, un button salva per salvare i dati digitati e selezionati sul form e qui mi blocco... Ho provato a collegare il progetto ad un database sql tramite procedura guidata, qui mi sono fermato!
   
				 | 
    
				
    
    | 
        
        
        07/03/2013 20:10:17
        
     
        
        
 postami cosa metti in buttonclick()
 
 il db dev`essere linkato necessariamente con connection string, tuttavia il db sql dev`essere raggiungibile ovviamente quindi dicendo "non in rete" intendi che il db sql è in locale?
 
 Mi servono + specifiche sul tuo db sql.
 
 fai sapere.
 
				 | 
    
				
    
    | 
        
        
        30/03/2013 01:35:07
        
     
        
 Ciao BJ, sto procedendo a piccoli passi, sono riuscito a connettere il database, incollo il codice che ho usato per l`evento click del button di salvataggio, c`è ancora un sacco da fare...
 
 
 
 Public Class Form1
 Dim cn As SqlCeConnection
 Dim PosImmagine As String = Nothing `variabile dove memorizzerò il percorso dell`immagine
 Dim ContaRec As Integer `varibile in cui inserirò l`id del record
 Dim PercorsoImg As String = Nothing
 Dim NomeImg As String = Nothing
 Dim di As DirectoryInfo = Nothing
 
 Private Sub Form1_Load(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles MyBase.Load
 
 `aggiorno la data del datetimepicker
 DateTimePicker1.Value = Today
 
 `connessione al database
 cn = New SqlCeConnection("Data Source=" & My.Application.Info.DirectoryPath & "\Database1.sdf")
 
 `aggiorno la griglia
 UpdateDGV_Movimenti()
 
 End Sub
 
 Private Sub Button2_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button2.Click
 
 `apro la connessione
 cn.Open()
 
 Contatore()
 
 `inserisce in una stringa i dati dei controlli
 Dim sql As String = "INSERT INTO MiaTabella(nome, serie, ditta, versione, made_in, condizioni, acquistato_da, data_acquisto, immagine, id) VALUES(`" & TextBox1.Text & _
 "`, `" & ComboBox1.Text & "`, `" & ComboBox2.Text & "`, `" & ComboBox3.Text & "`, `" & ComboBox4.Text & "`, `" & ComboBox5.Text & "`, `" & _
 TextBox2.Text & "`, `" & DateTimePicker1.Value.ToShortDateString & "`, `" & PosImmagine & "`, `" & ContaRec & "`)"
 
 `poi imposto il comando da eseguire
 Dim cmd As New SqlCeCommand(sql, cn)
 
 `e lo eseguo!!!
 cmd.ExecuteNonQuery()
 
 `chiudo la connessione QUESTA COSA è MOLTO IMPORTANTE!!!
 cn.Close()
 
 
 `in fine aggiorno la griglia vedi subrutine UpdateDGV_Movimenti
 UpdateDGV_Movimenti()
 
 `creo messaggio che i dati sono stati salvati
 MsgBox("Dati salvati con successo!", MsgBoxStyle.Information, "AVVISO")
 
 End Sub
 
 Sub UpdateDGV_Movimenti()
 `apro la connessione
 cn.Open()
 
 `imposta il comando sql
 Dim cmd As New SqlCeCommand("SELECT * FROM MiaTabella ORDER BY nome DESC", cn)
 
 `imposta il lettore datareader chiamato dr
 Dim dr As SqlCeDataReader = cmd.ExecuteReader(CommandBehavior.CloseConnection)
 
 `carico MiaTabella in un datatable
 Dim DT As New DataTable("MiaTabella")
 
 `leggi i datarecord dr dal datatable
 DT.Load(dr)
 
 `chiudo la connessione
 cn.Close()
 
 `e finalmente carico la griglia dal datatable!
 DataGridView1.DataSource = DT
 
 End Sub
 
 Private Sub ComboBox2_SelectedIndexChanged(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles ComboBox2.SelectedIndexChanged
 `carica i loghi delle ditte produttrici nella picturebox1 in base al produttore selezionato (per ora solo 3)
 If ComboBox2.SelectedItem = "TAKATOKU" Then
 PictureBox2.Image = My.Resources.takatoku_logo
 
 ElseIf ComboBox2.SelectedItem = "POPY" Then
 PictureBox2.Image = My.Resources.popy_logo
 
 ElseIf ComboBox2.SelectedItem = "TAKEMI" Then
 PictureBox2.Image = My.Resources.takemi_logo
 End If
 
 End Sub
 
 Private Sub TextBox1_LostFocus(ByVal sender As Object, ByVal e As System.EventArgs) Handles TextBox1.LostFocus
 `trasforma il testo digitato nella textbox in maiuscolo
 TextBox1.Text = TextBox1.Text.ToUpper
 End Sub
 
 Private Sub TextBox2_LostFocus(ByVal sender As Object, ByVal e As System.EventArgs) Handles TextBox2.LostFocus
 `trasforma il testo digitato nella textbox in maiuscolo
 TextBox2.Text = TextBox2.Text.ToUpper
 End Sub
 
 Private Sub BT_ImportaFoto_Click(sender As System.Object, e As System.EventArgs) Handles BT_ImportaFoto.Click
 `apro openfiledialog
 OpenFileDialog1.ShowDialog()
 End Sub
 
 Private Sub OpenFileDialog1_FileOk(ByVal sender As System.Object, ByVal e As System.ComponentModel.CancelEventArgs) Handles OpenFileDialog1.FileOk
 `Apro la finestra di dialogo
 OpenFileDialog1.OpenFile()
 `inserisco le immagini nel picturebox
 PictureBox1.Load(OpenFileDialog1.FileName)
 `salvo nella variabile il nome dell`immagine aperta
 PercorsoImg = OpenFileDialog1.FileName
 NomeImg = OpenFileDialog1.SafeFileName
 
 ``crea la directory nella directory dove risiede l`exe
 My.Computer.FileSystem.CreateDirectory(My.Application.Info.DirectoryPath & "\Img")
 
 Di = New DirectoryInfo(My.Application.Info.DirectoryPath & "\Img")
 
 ` Determina se la directory esiste.
 If di.Exists = False Then
 `Se non esiste provare a creare la directory.
 di.Create()
 End If
 
 `e dopo salva all`interno di questa (vedi runtime salvaImmagine)
 salvaImmagine()
 
 End Sub
 
 Sub salvaImmagine()
 `se il file non esiste allora...
 If My.Computer.FileSystem.FileExists(di.FullName) = False Then
 
 `copio il file originale nella directory img
 My.Computer.FileSystem.CopyFile(PercorsoImg, di.FullName & "\" & NomeImg, FileIO.UIOption.AllDialogs, FileIO.UICancelOption.DoNothing)
 
 `salvo il percorso di n`do caz viene salvata l`immagine
 PosImmagine = di.FullName
 
 `aggiorno il db associando il percorso ai dati e minca e guaddu!(vedi runtime UpdateDB)
 UpdateDB()
 
 `aggiorno la griglia
 UpdateDGV_Movimenti()
 End If
 End Sub
 
 Sub UpdateDB()
 Dim cmd As New SqlCeCommand
 `apro la connessione
 cn.Open()
 cmd.Connection = cn
 cmd.CommandText = "UPDATE MiaTabella SET nome =`" & TextBox1.Text & _
 "`, serie =`" & ComboBox1.Text & _
 "`, ditta =`" & ComboBox2.Text & _
 "`, versione =`" & ComboBox3.Text & _
 "`, made_in =`" & ComboBox4.Text & _
 "`, condizioni =`" & ComboBox5.Text & _
 "`, acquistato_da =`" & TextBox2.Text & _
 "`, data_acquisto =`" & DateTimePicker1.Value.ToShortDateString & _
 "`, immagine =`" & PosImmagine & "\" & NomeImg & _
 "` WHERE ID =" & ContaRec `DataGridView1.CurrentRow.Cells("ID").Value
 cmd.ExecuteNonQuery()
 `chiudo la connessione... cazz che c`è freddo!
 cn.Close()
 `svuoto le variabili
 PosImmagine = Nothing
 NomeImg = Nothing
 End Sub
 
 Sub Contatore()
 `leggo i dati dalla tabella esattamente dal campo ID
 Dim cmd As New SqlCeCommand("SELECT DISTINCT * FROM MiaTabella ORDER BY ID", cn)
 `eseguo il comando
 Dim dr As SqlCeDataReader = cmd.ExecuteReader
 `creo un ciclo che aumenta di uno la variabile... se i record esistono aumenta l`ultimo di 1
 Do While dr.Read
 ContaRec = dr.Item("ID") + 1
 Loop
 `chiudo la connessione (sempre!!!)
 dr.Close()
 End Sub
 
				 | 
    
				
    
    | 
        
        
        30/03/2013 18:58:27
        
     
        
        
beh te la cavi.
 
 
 ti consiglio di non continuare ad aprire e chiudere la connessione.
 
 Aprila e chiudila una volta sola, perderai sicuramente meno tempo e risorse.
 
 Meglio ancora creare un`oggetto static final che la gestisca, ma la per ora va bene anche così.
 
 
 Ti conviene inoltre prevedere le eventuali eccezioni con blocchi try\catch.
 
 
   
				 | 
    
				
    
    | 
        
        
        30/03/2013 22:20:42
        
     
        
        
Grazie BJ, non sai quanto ho dovuto sbattermi per scrivere quelle 10 righe, ho cercato degli esempi online, ma finchè non sono riuscito a capire quello che stavo scrivendo non mi è stato possibile far funzionare il programma...
 Ok, vedrò di migliorare la gestione della connessione al DB, per quanto riguarda la gestioni degli errori, sto studiando da un nuovo libro e presto cercherò di implementare le funzioni.
 Ora devo riuscire a fare salvare il percorso di più foto nel database.
 Posso disturbarti se non riesco a districarmi?
 grazie in anticipo!
     
				 | 
    
				
    
    | 
        
        
        03/04/2013 00:59:39
        
     
        
        
Si no problem. E` questione di pratica, nulla di difficile. io partendo da zero in due mesi ho scritto in C# il programma che chiude la fatturazione in azienda.
 
 Se devi gestire immagini hai provato a pensare ad un`ECM free?
 
 Alfresco su tutti.
 
 Buon divertimento
   
				 |