IMPORTANTE: giocattolivecchi.com non è responsabile per il contenuto dei messaggi presenti nei forum e degli annunci presenti sul mercatino. I messaggi dei forum rappresentano l'espressione del pensiero degli autori ed il mercatino è uno spazio offerto ai privati che possono vendere il loro vecchi giocattoli.

FORUM OT/Attualità

 Chi si se cavicchia con Visual Basic?

 |  Lista discussioni  | 
01/03/2013 19:37:13
Avatar
nagufo (dal 16/07/04)
voti annunci collezione forum

Sono un neofita, avrei bisogno di qualche consiglio da esperti!
01/03/2013 23:05:09
Avatar
Black.Jack (dal 12/04/07)
voti annunci collezione forum

vai ci penso io.
Programmo in Java, C# , VB , JavaScript, JQuery, SQL e varie ed eventuali.
02/03/2013 18:03:30
Avatar
pastrocchio (dal 03/04/09)
voti annunci collezione forum

... 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
Avatar
nagufo (dal 16/07/04)
voti annunci collezione forum

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
Avatar
nagufo (dal 16/07/04)
voti annunci collezione forum

Black.Jack , sei un mito!!! spero di aver perso la tua mail!
02/03/2013 23:27:09
Avatar
Black.Jack (dal 12/04/07)
voti annunci collezione forum

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
Avatar
nagufo (dal 16/07/04)
voti annunci collezione forum

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
Avatar
Black.Jack (dal 12/04/07)
voti annunci collezione forum

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
Avatar
nagufo (dal 16/07/04)
voti annunci collezione forum

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
Avatar
Black.Jack (dal 12/04/07)
voti annunci collezione forum

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
Avatar
nagufo (dal 16/07/04)
voti annunci collezione forum

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
Avatar
Black.Jack (dal 12/04/07)
voti annunci collezione forum

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


Ultimi annunci inseriti su annuncivintage.com

-