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
|