Ricerca 
it-ITen-US
Registrazione
Accedi
In-Vesti Dotnetwork
IN-VESTI DNW!!!
Sono finalmente arrivate le nuovissime T-Shirt di DotNetWork!!! Con soli 15,00 € ci sosterrai nelle spese di gestione della Community e ti invieremo a casa una splendida maglietta.
Se vuoi contribuire al mantenimento di DotNetWork.it Vai sulla pagina Iscrizioni
Effettua il pagamento usando IWBank
Click per andare alla pagina di Iscrizione
Oppure un Bonifico bancario (le coordinate sono sulla pagina Iscrizioni), inviaci una mail a support@dotnetwork.it indicandoci la tua taglia e l'indirizzo di spedizione.  Non appena verificata la ricezione del pagamento provvederemo a spedirti la tua T-Shirt.  Le magliette sono disponibili nelle taglie S-M-L-XL-XXL (in caso di esaurimento di una delle taglie, indica quella di "Backup"). Grazie per IN-VESTIRTI con NOI!!!
.:DotNetWork Founders:.
    Stampa     


DotNetWork Forums
HELP- inserire dati da form in un database ms sql
Ultimo Post 03 ott 2009 13.38 by jzgrafica. 45 Risposte.
Stampa immediata
Ordina:
PrevPrev ProssimoProssimo
Non sei autorizzato ad inviare una risposta.
Page 1 di 212 > >>
Autore Messaggi Risolto

Posts:129

--
19 set 2009 15.58  
ciao a tutti, sono nuova di qui sto creando un sito in asp.net per un mio cliente..
Ho un problema sull'inserimento dati da un form nel database ms sql... utilizzo visual studio 2008, e ms sql 2000.

dunque, il mio problema è su una web form, nella quale il mio cliente dovrà inserire i dati delle sue auto per inserirle in un database... la form è questa
Software Grafica Photoshop al click sul pulsante inserisci, i dati dovrebbero andare a finire nella tabella TabCaratteristiche:
Software Grafica Photoshop solo che non so come fare...ho provato in diversi modi ma nessuno funzionava, poi ho provato a creare un dataset con visual studio ( con il dataset designer), ma ora non so che farmene.. nella parte di codice aspx.vb non ho scritto ancora nulla, perchè non so cosa scrivere...vi chiedo aiuto urgente, perche senza questa parte non posso fare il resto del sito del mio cliente... Ho studiato asp.net all'università 7 anni fa, la mia memoria è arruginita ... ed ora ho un pò d'urgenza..vi sembrerò imbranata ma...



Posts:537

--
19 set 2009 16.07  
Benvenuta tra noi.
Sinceramente odio ASPX (preferisco le applicazione WinForm o WPF).

dovresti prima decidere come accedere al DB: via StoredProcedure o direttamente con codice SQL dalla pagina ASPX.

Io ti consiglio SP in modo che parametrizzi tutto. Non so se c'è qualcosa negli articoli..prova a guardare.

Comunque informati sulle SP ed il loro utilizzo che è fantastico.



Posts:129

--
19 set 2009 16.34  
Ciao grazie per la risposta, ho provato ad usare le store procedure, ma quando definisco i parametri ( nella UPDATE , tipo update TabCaratteristiche (marca,modello ecc) VALUES (@Marca,@modello ) e poi definisco i parametri sotto (@Marca= DDL_Marca.SelectedItem.text)
mi dice che il parametro marca non è definito...

Inoltre, vorrei usare i dataset per evitare di fare troppi danni al DB in caso di errori, solo che non so come fare ... l'ho creato, con il TableAdapter, ma non so proprio dove metter mano...anche perchè non so se la datagrid dove verranno visualizzati i dati inseriti dal form, devo metterla nella pagina del form o in un altra pagina....ed in tal caso, come collego la seconda pagina con la datagrid alla pagina dalla quale prelevo i dati ( la pagina del Form ) ?



Posts:662

--
19 set 2009 16.41  
solo che non so come fare...ho provato in diversi modi ma nessuno funzionava, poi ho provato a creare un dataset con visual studio ( con il dataset designer), ma ora non so che farmene.. nella parte di codice aspx.vb non ho scritto ancora nulla, perchè non so cosa scrivere...vi chiedo aiuto urgente, perche senza questa parte non posso fare il resto del sito del mio cliente... Ho studiato asp.net all'università 7 anni fa, la mia memoria è arruginita ... ed ora ho un pò d'urgenza..vi sembrerò imbranata ma...
Ciao e benvenuta. L'essere come tu dici "imbranati" è la condizione per cui questa community esiste quindi non preoccuparti e considera che ogni domanda è legittima. Per quanto riguarda il tuo problema la logica con cui lavorano le applicazioni winform e webform da un punto di vista di interfaccia con i dati sono, nella sostanza, le stesse: mi creo una struttura dati a livello client che rappresenti il set di dati che voglio esporre, mi collego attraverso una connessione dati (tipicamente una connessione odbc, sqlclient o oracle nel caso in cui il db sia un DBMS, oppure attraverso XML qualora si scelga questo tipo di repository, oltre a questi anche Excel, file di testo, ecc... ) al mio repository, popolo un'istanza della struttura con i dati che ho sul repository e successivamente eseguo il binding sui controlli che mi espone la mia UI. Tu hai fatto quasi tutto... ti manca un oggetto SqlDataSource per accedere al db e l'istruzione per popolarlo...
HTH
Alberto



Posts:537

--
19 set 2009 16.43  
Insomma.

Io per evitare danni, evito il DataSet creato dal Wizard di VS. Fare tutto a manina comporta più controllo di tutto.

per i Parametri dovresti postare un poco di codice. Vai a manina e vedrai che ti trovera meglio...con i Wizard non sai mai cosa succede...quarda gli articoli di Sabrina dal suo Blog..si riferiscono a WinForm ma è uguale per ASPX



Posts:129

--
19 set 2009 17.01  
ecco qui un pò di codice che avevo scritto,tre tipi di connessioni al DB con le instruzioni...


  1. NON FUNZIONA :  Dim strconn As String strconn = "Database=Ioscauto;Provider=OleDb;DataSource=localhost;" 'strconn = "Database=ioscauto;Provider=SQLOLEDB;integrated security=SSPI;data source=localhost;persist security info=False" '"workstation id=CHERE;packet size=4096;" Dim objConn As New OleDb.OleDbConnection(strconn) 'Dim objCmd As New OleDbCommand(strSQL, objConn) 'Dim @marca as New string Dim marca As String Dim km As Integer Dim modello As String Dim anno As Integer Dim trazione As String Dim tagliandi As String Dim cilindrata As Integer Dim alimentazione As String Dim colore As String Dim nporte As Integer Dim tipologia As String Dim opt As String Dim altro As String Dim prezzo As Integer Dim Connection As New SqlClient.SqlConnection marca = DDL_Marca.SelectedItem.Text km = TB_Km.Text modello = DDL_Modello.SelectedItem.Text anno = DDL_Anno.SelectedItem.Value trazione = DDL_Trazione.SelectedItem.Text tagliandi = TB_Tagliandi.Text cilindrata = DDL_Cilindrata.SelectedItem.Text alimentazione = DDL_Alimentazione.SelectedItem.Text colore = TB_Colore.Text nporte = TB_Porte.Text tipologia = TB_TIpologia.Text opt = LB_optional.SelectedItem.Text altro = TB_caratteristiche.Text prezzo = TB_Prezzo.Text Dim strSQL As String strSQL = "INSERT INTO Caratteristiche ('marca','modello','anno','trazione','km','tagliandi','cilindrata','cv','kw','alimentazione','colore','nporte','tipologia','optional','altro','prezzo')VALUES('marca','modello',@anno,'trazione',@km,'tagliandi','cilindrata',@cv,@kw,'alimentazione','colore',@nporte,'tipologia','opt','altro',@prezzo)" Dim objCmd As New OleDb.OleDbCommand(strSQL, objConn) Connection = New Data.SqlClient.SqlConnection(strconn) objCmd.Connection.Open() Dim CMD As New System.Data.SqlClient.SqlCommand(strSQL, Connection) objCmd.ExecuteNonQuery() objCmd.Connection.Close()
  2. SECONDO TIPO DI CONNESSIONE CON ISTRUZIONI Dim marc As String Dim model As String Dim conn As New System.Data.SqlClient.SqlConnection Dim strconn As String 'definisco la stringa per aprire l aocnnessione Dim strsql As String 'definisco stringa contenente l'istruzione SQL Dim ann As Integer Dim traz As String Dim kim As Integer Dim tagliand As String Dim cil As String Dim cav As Integer Dim kilo As Integer Dim alim As String Dim col As String Dim nport As Integer Dim tipo As String Dim opt As String Dim altro As String Dim prez As Integer marc = DDL_Marca.SelectedItem.Text model = DDL_Modello.SelectedItem.Text ann = DDL_Anno.SelectedItem.Value traz = DDL_Trazione.SelectedItem.Text kim = TB_Km.Text tagliand = TB_Tagliandi.Text cil = DDL_Cilindrata.SelectedValue cav = TB_CV.Text kilo = TB_KW.Text alim = DDL_Alimentazione.SelectedItem.Text col = TB_Colore.Text nport = TB_Porte.Text tipo = TB_TIpologia.Text opt = LB_optional.Text altro = TB_caratteristiche.Text prez = TB_Prezzo.Text 'strsql = "INSERT INTO TabCaratteristiche(marca,modello,anno,trazione,km,tagliandi,cilindrata,cv,kw,alimentazione,colore,nporte,tipologia,optional,altro,prezzo) VALUES ('marc','model','ann','traz','kim','tagliand','cilindrata','cav','kilo','alim','col','nport','tipo','opt','altro','prez'" strconn = "workstation id=JZONTINI;integrated security=SSPI;Data Source=JZONTINI;Asynchronous Processing=true;Initial Catalog=ioscauto;persist security info=False;" 'strconn = "Provider=SQLOLEDB;;Integrated Security=SSPI;Initial Catalog=ioscauto;Asynchronous Processing=true" 'creo la stringa di connessione al DB conn = New Data.SqlClient.SqlConnection(strconn) 'apro la connessione al DB conn.Open() 'Dim CMD As New SqlClient.SqlCommand 'CMD = New Data.SqlClient.SqlCommand(strsql, conn) 'CMD.BeginExecuteNonQuery() DDL_Marca.Text.Insert(0, marc) DDL_Modello.Text.Insert(1, model) DDL_Anno.SelectedValue.Insert(1, ann) DDL_Trazione.SelectedValue.Insert(1, traz) TB_Km.Text.Insert(1, kim) TB_Tagliandi.Text.Insert(1, tagliand) DDL_Cilindrata.SelectedValue.Insert(1, cil) TB_CV.Text.Insert(1, cav) TB_KW.Text.Insert(1, kilo) DDL_Alimentazione.SelectedValue.Insert(1, alim) TB_Colore.Text.Insert(1, col) TB_Porte.Text.Insert(1, nport) TB_TIpologia.Text.Insert(1, tipo) LB_optional.SelectedValue.Insert(1, opt) TB_caratteristiche.Text.Insert(1, altro) TB_Prezzo.Text.Insert(1, prez) conn.Close()
  3. Dim strconn As String 'definisco la stringa per aprire l aocnnessione Dim strsql As String 'definisco stringa contenente l'istruzione SQL Dim conn As New System.Data.SqlClient.SqlConnection strconn = "workstation id=JZONTINI;integrated security=SSPI;Data Source=JZONTINI;Asynchronous Processing=true;Initial Catalog=ioscauto;persist security info=False;" strsql = "INSERT INTO TabCaratteristiche(marca,modello,anno,trazione,km,tagliandi,cilindrata,cv,kw,alimentazione,colore,nporte,tipologia,optional,altro,prezzo) VALUES (@marc,@model,@ann,@traz,@kim,@tagliand,@cil,@cav,@kilo,@alim,@col,@nport,@tipo,@opt,@altro,@prez)" conn = New Data.SqlClient.SqlConnection(strconn) conn.Open() @marc as New varchar (50), @model varchar (50), @ann int (4), @traz varchar (50), @kim bigint (8), @tagliand varchar (50), @cil varchar (50), @cav int (4), @kilo int (4), @alim varchar (50), @col varchar (50), @nport int (4), @tipo varchar (50), @opt varchar (500), @altro varchar (500), @prez bigint (8) (questa con StoreProcedure)
NESSUNA DI QUESTE FUNZIONAVA... per questo, ho deciso di usare un dataset...solo che non so come usarlo XD



Posts:537

--
19 set 2009 18.29  
stai mischiando OleDb con SqlClient...letto così non si capisce nulla...questo lo scrivi nel file VB (o C#) ?

la connessione dove la tieni? nel WebConfig? spero di si.
questa è una stringa di connessione ad un SQL 2008 con provider SQL:

Naturalemente sta nel web.config e la richiamo dalla pagina ASPX col nome PanatronicConnectionString.





Posts:129

--
19 set 2009 18.42  

stai mischiando OleDb con SqlClient...letto così non si capisce nulla...questo lo scrivi nel file VB (o C#) ?
VB
la connessione dove la tieni? nel WebConfig? spero di si.

ehm....non capisco cosa intendi....usando sql server...la tengo su sql server..il web config non l'ho toccato per non fare danni... cosa dovrei fare ? cmq la stringa (ultima ) che ho creato l'ho creato con il sqlDataSource nella finestra di sx , sotto la voce dati...ioscautoConnectionString...

questa è una stringa di connessione ad un SQL 2008 con provider SQL:

non vedo la stringa...


Naturalemente sta nel web.config e la richiamo dalla pagina ASPX col nome PanatronicConnectionString.

e come si richiama ? cmq il problema oltre a questo rimane sempre l'update...


per farti capire meglio.... questo è il dataset creato in vs 2008 ( Ho creato una stored procedure per l'Update, me l'ha inserita nel datatableadapter, ma comunque non so come richiamarla nella mia pagina...

Software Grafica Photoshop

e questo invece è il codice della mia pagina Default.aspx ( quella con il form)

Software Grafica Photoshop










Posts:811

--
19 set 2009 21.18  

Se quello che ti serve è solo inserire dati, ti ho preparato un esempio funzionante.

Lo trovi in allegato al messaggio.

saluti

Sabrina


Attachment: UpdateSqlfromAsp.zip

Sabrina

Posts:129

--
20 set 2009 10.27  
ciao ! grazie mille, ora scarico e ti dico se funziona ... ^__^



Posts:129

--
20 set 2009 10.38  
ciao scaricato, ma è C#...vero ? io uso VB..posso prendere spunto dalla tua per svilupparla in VB, solo che non so dove mettere questo pezzo :
<br><br>namespace UpdateSqlfromAsp<br>{<br>    public partial class _Default : System.Web.UI.Page<br>    <br>    {<br>        string mSqlInsert = @"<br>            INSERT INTO TbTestAsp<br>           ([Codice]<br>           ,[descrizione])<br>            VALUES<br>           (@Codice<br>           ,@Descrizione)<br>            ";<br><br>



Posts:129

--
20 set 2009 11.17  
Allora, ho provato ad adattarlo a VB così (Per comprendere meglio il codice, ho provato su una pagina di login dell'utente, con solo due TextBox, una per il nome e l'altra per la password):

<br><br>Imports System
Imports System.Collections
Imports System.Configuration
Imports System.Data
Imports System.Linq
Imports System.Web
Imports System.Web.Security
Imports System.Web.UI
Imports System.Web.UI.HtmlControls
Imports System.Web.UI.WebControls
Imports System.Web.UI.WebControls.WebParts
Imports System.Xml.Linq
Imports System.Data.SqlClient

Partial Class Login
    Inherits System.Web.UI.Page

    Protected Sub B_invia_Click(ByVal sender As Object, ByVal e As System.EventArgs) Handles B_invia.Click
        If TB_nome.Text = "FrancoDamianoIosca" Then
            If TB_password.Text = "semprelavora" Then
                Server.Transfer("Default.aspx")
            End If
            If TB_password.Text <> "semprelavora" Then
                MsgBox("la password non corrisponde al nome", MsgBoxStyle.AbortRetryIgnore)
                Server.Transfer("Login.aspx")
            End If
        End If
        If TB_nome.Text = "jzgrafica" Then
            If TB_password.Text = "cm653rh" Then
                Server.Transfer("Default.aspx")
            End If
            If TB_password.Text <> "cm653rh" Then
                MsgBox("la password non corrisponde al nome", MsgBoxStyle.AbortRetryIgnore)
                Server.Transfer("Login.aspx")
            End If
        End If

    End Sub

    Public Sub SqlParameterCollection(ByVal ParamArray([byval parapara][byval parapara2]) as new SqlParameter)
        Dim parapara As New SqlParameter
        Dim parapara2 As New SqlParameter
        parapara.SqlValue = TB_nome.Text
        parapara2.SqlValue = TB_password.Text
    End Sub

    Protected Sub B_registrati_Click(ByVal sender As Object, ByVal e As System.EventArgs) Handles B_registrati.Click

        Dim cn As New SqlConnection()
        cn.ConnectionString = "Data Source=JZONTINI;Initial Catalog=ioscauto;Integrated Security=True"
        Dim strconn As New SqlCommand("INSERT INTO TabUtente (nome,password)VALUES(@nome,@password)")

        Dim cmd As New SqlCommand()
       

        cmd.Connection = cn
        cmd.CommandText = strconn.CommandText
        cmd.Parameters.AddRange = SqlParameter
        cn.Open()
        cmd.ExecuteNonQuery()
        cn.Close()
            this.Label3.Text = "OK Inserito";
    End Sub
End Class

però mi da errore su : Public Sub SqlParameterCollection(ByVal ParamArray([byval parapara][byval parapara2]) as new SqlParameter)
, nella parte ByVal paramArray ( mi segna la prima parentesi e mi dice che vuole un identificatore ) .. Di conseguenza mi da errore anche qui: cmd.Parameters.AddRange = SqlParameter



Posts:129

--
20 set 2009 12.00  
credo di aver quasi risolto così...il problema è che non capisco come dire a VB che le variabili TuoNome e TuoCognome sono quelle da inserire nel DB ( quelle dell'istruzione SQL, per intenderci ) ..se metto la chiocciolina (@TuoNome=parapara.value -o parapara.text-) mi segna la chiocciolina come errore e mi dice errore di sintassi..Comunque, questo è il codice quasi sistemato credo...
 
Imports System
Imports System.Collections
Imports System.Configuration
Imports System.Data
Imports System.Linq
Imports System.Web
Imports System.Web.Security
Imports System.Web.UI
Imports System.Web.UI.HtmlControls
Imports System.Web.UI.WebControls
Imports System.Web.UI.WebControls.WebParts
Imports System.Xml.Linq
Imports System.Data.SqlClient

Partial Class Login
    Inherits System.Web.UI.Page

    Protected Sub B_invia_Click(ByVal sender As Object, ByVal e As System.EventArgs) Handles B_invia.Click
        If TB_nome.Text = "FrancoDamianoIosca" Then
            If TB_password.Text = "semprelavora" Then
                Server.Transfer("Default.aspx")
            End If
            If TB_password.Text <> "semprelavora" Then
                MsgBox("la password non corrisponde al nome", MsgBoxStyle.AbortRetryIgnore)
                Server.Transfer("Login.aspx")
            End If
        End If
        If TB_nome.Text = "jzgrafica" Then
            If TB_password.Text = "cm653rh" Then
                Server.Transfer("Default.aspx")
            End If
            If TB_password.Text <> "cm653rh" Then
                MsgBox("la password non corrisponde al nome", MsgBoxStyle.AbortRetryIgnore)
                Server.Transfer("Login.aspx")
            End If
        End If

    End Sub

   


    Protected Sub B_registrati_Click(ByVal sender As Object, ByVal e As System.EventArgs) Handles B_registrati.Click

        Dim cn As New SqlConnection()
        cn.ConnectionString = "Data Source=JZONTINI;Initial Catalog=ioscauto;Integrated Security=True"
        Dim strconn As New SqlCommand("INSERT INTO TabUtente (nome,password)VALUES(TuoNome,TuaPassword)")

        Dim cmd As New SqlCommand()

        Dim parapara As New SqlParameter
        Dim parapara2 As New SqlParameter
        parapara.Value = TB_nome.Text
        parapara2.Value = TB_password.Text

        
        cmd.Connection = cn
        cmd.CommandText = strconn.CommandText
        cn.Open()
        Dim TuoNome As New SqlParameter
        Dim TuaPassword As New SqlParameter

        TuoNome = parapara
        TuaPassword = parapara2

        cmd.ExecuteNonQuery()
        cn.Close()
        Label3.Text = "OK Inserito"
    End Sub
End Class




Posts:811

--
20 set 2009 12.47  

Ci sono dei siti appositi x le traslazioni C# VB e viceversa, trovi i links sulla pagina Utility

Public Partial Class _Default 
    Inherits System.Web.UI.Page 
    
    Private mSqlInsert As String = vbCr & vbLf & vbTab & vbTab & vbTab & "INSERT INTO TbTestAsp" & vbCr & vbLf & " ([Codice]" & vbCr & vbLf & " ,[descrizione])" & vbCr & vbLf & vbTab & vbTab & vbTab & "VALUES" & vbCr & vbLf & " (@Codice" & vbCr & vbLf & " ,@Descrizione)" & vbCr & vbLf & vbTab & vbTab & vbTab 
    
    
    Protected Sub Page_Load(ByVal sender As Object, ByVal e As EventArgs) 
        
    End Sub 
    
    Protected Sub Button1_Click(ByVal sender As Object, ByVal e As EventArgs) 
        Me.Label3.Text = "Provo ad inserire" 
        Dim cn As New SqlConnection() 
        cn.ConnectionString = "Data Source=4unb20;Initial Catalog=paperinik;User Id=paperuser;Password=rinikpaper;" 
        Dim cmd As New SqlCommand() 
        Dim para As SqlParameter() = _
            New SqlParameter() { _
            New SqlParameter("@Codice", Me.txtCode.Text), _
            New SqlParameter("@Descrizione", Me.txtDescription.Text)} cmd.Connection = cn cmd.CommandText = mSqlInsert cmd.Parameters.AddRange(para) cn.Open() cmd.ExecuteNonQuery() cn.Close() Me.Label3.Text = "OK Inserito" End Sub End Class la sola cosa di cui non sono sicura è la conversione dell'array di parametri
ma mi pare che sia così.

Fai attenzione che il SQL che esegui direttamente per una login
dovrà fare una select e tornarti almeno un valore
pertanto dovrai usare l'ExecuteScalar se ti viene restituito un solo valore
oppure dovrai dichiarare un SQLDatareader e usare l'ExecuteReader del command
per ottenere una o più righe contenenti il risultato della query.

saluti
Sabrina


Sabrina

Posts:129

--
20 set 2009 14.14  
ok funziona !! Ora ho bisogno di comprendere alcune cose però, per poterla utilizzare con la testa ( e non solo con il copia incolla XD ) ...

cosa sono questi simboli: vbCr & vbLf & vbTab & vbTab & vbTab & ??
Sono necessari ? e se voglio una select ( per permettere all'utente registrato di accedere ) uso sempre quelli nella funzione che chiamero msqlselect?
Poi,dimmi se ho capito giusto:
Dim cn As New SqlConnection() // DICHIARO LA VARIABILE PER LA CONNESSIONE
cn.ConnectionString = "Data Source=4unb20;Initial Catalog=paperinik;User Id=paperuser;Password=rinikpaper;" // SPECIFICO ALLA VARIABILE DOVE CONNETTERSI
Dim cmd As New SqlCommand() //CREO UNA VARIABILE PER INSERIRE COMANDI SQL
Dim para As SqlParameter() = _ // CREO UNA FUNZIONE PER DEFINIRE I PARAMETRI (è giusto??? )
New SqlParameter() { _ // QUESTO COSA FA ?!?!
New SqlParameter("@Codice", Me.txtCode.Text), _ //QUI SPECIFICO QUALI VALORI INSERIRE NEI PARAMETRI,ED ANCHE NELLA RIGA SUCCESSIVA
New SqlParameter("@Descrizione", Me.txtDescription.Text)}
cmd.Connection = cn // DO LA CONNESSIONE AL MIO COMANDO SQL
cmd.CommandText = mSqlInsert // SPECIFICO L'ISTRUZIONE SQL DA ESEGUIRE AL MIO COMANDO
cmd.Parameters.AddRange(para) // QUI ? AL COMANDO AGGIUNGO I PARAMETRI DEFINITI PRIMA ??
cn.Open() //APRO LA CONNESSIONE
cmd.ExecuteNonQuery() // ExecuteNonQuery L'ho sempre usato, MA COSA FA DI PRECISO ?
cn.Close() //CHIUDO LA CONNESSIONE


Me.Label3.Text = "OK Inserito"




Posts:129

--
20 set 2009 15.32  
infatti, ho provato così ( sul form della login ho due pulsanti, uno per la registrazione ed uno per l'accesso..quello per la registrazione finalmente funziona, grazie al vostro aiuto ) e quello per l'accesso l'ho strutturato così...



 Private mSqlselectnome As String = vbCr & vbLf & vbTab & vbTab & vbTab & "Select " & vbCr & vbLf & " ([nome]" & vbCr & vbLf & " )" & vbCr & vbLf & "From TabUtente" & vbCr & vbLf & vbTab & vbTab & vbTab
    Private mSqlselectPassword As String = vbCr & vbLf & vbTab & vbTab & vbTab & "Select " & vbCr & vbLf & " ([password]" & vbCr & vbLf & " )" & vbCr & vbLf & "From TabUtente" & vbCr & vbLf & vbTab & vbTab & vbTab


    Protected Sub B_invia_Click(ByVal sender As Object, ByVal e As System.EventArgs) Handles B_invia.Click
        Dim cn2 As New SqlConnection()
        cn2.ConnectionString = "Data Source=JZONTINI;Initial Catalog=ioscauto;Integrated Security=True"
        cn2.Open()
        Dim cmd As New SqlCommand()
        Dim cmd2 As New SqlCommand
        cmd.Connection = cn2
        cmd2.Connection = cn2
        cmd.CommandText = mSqlselectnome
        cmd2.CommandText = mSqlselectPassword
        Dim strnome As String
        Dim strpass As String
        strnome = cmd.CommandText
        strpass = cmd2.CommandText

        If TB_nome.Text.ToString = strnome Then
            If TB_password.Text.ToString = strpass Then
                Server.Transfer("Default.aspx")


            End If
            If TB_password.Text.ToString <> strpass Then
                Me.Label3.Text = "errore"
                MsgBox("la password non corrisponde al nome", MsgBoxStyle.AbortRetryIgnore)
                Server.Transfer("Login.aspx")
            End If
        End If
      

     
        cmd.ExecuteNonQuery()
        cn2.Close()

    End Sub
Ma non fa nulla, anche se i dati che inserisco ( nome e password ) sono corretti....non mi da alcun errore, però non mi manda alla pagina Default.aspx



Posts:129

--
20 set 2009 18.01  
ok ho provato a gestire l'inserimento dei dati con il form iniziale ( quello dove il cliente doveva inserire le auto ) ... funziona per quasi tutto solo che ho un problemino sulla label per aggiungere foto ( quella che visual studio mette a disposizione chiamandola File Upload ) .... come la gestisco ?

New SqlParameter("@foto", Me.FU_foto.PostedFile)}

cosi non funziona e mi da errore.. pur avendo scritto il codice per verificare che non sia vuota


If Not FU_foto.HasFile = False Then

            Dim filepath As String = FU_foto.PostedFile.FileName
            Dim pat As String = "\\(?:.+)\\(.+)\.(.+)"
            Dim r As Regex = New Regex(pat)
            'run
            Dim m As Match = r.Match(filepath)
            Dim file_ext As String = m.Groups(2).Captures(0).ToString()
            Dim filename As String = m.Groups(1).Captures(0).ToString()
            Dim filefoto As String = filename & "." & file_ext

            'save the file to the server
            FU_foto.PostedFile.SaveAs(Server.MapPath(".\") & filefoto)<br><br>---------------------<br><br>Altra cosa, sulla pagina del login....la registrazione funziona, ma ora anche inserendo i dati corretti non riconosce nessuno degli utenti... <br>



Posts:129

--
20 set 2009 18.28  
GRAZIE DI CUORE A TUTTI !!! Ho risolto quasi tutto , ora carica i dati nel database, ho risolto anche il problema foto...

mi manca solo il problema sulla select ( per il form login, per permettere il riconoscimento degli utenti registrati ) ... ed un ultima cosuccia, la sintassi per modificare i dati inseriti nel database, direttamente dal form ..per cancellarli l'ho creata, ma per modificarli ho qualche problema sull'istruzione ...
 



Posts:129

--
20 set 2009 18.33  
ah dimenticavo, problemino anche sugli optional ... lui può selezionare + opitonal perchè la textbox è il modalità multiline...però me ne filtra uno solo nel DB..



Posts:435

--
21 set 2009 08.47  
Ciao,
che problema hai esattamente sulla login ?
Provo a darti una mano...

Max



Posts:435

--
21 set 2009 09.43  
Io in una mia form di login ho usato questo sistema (che ha un difetto da sistemare che spiego dopo)


  Protected Sub Button1_Click(ByVal sender As Object, ByVal e As System.EventArgs) Handles Button1.Click
        If DBAuthenticate(Me.TextBox1.Text, Me.TextBox2.Text) Then
           Response.Redirect("/tickets/default.aspx")
        Else
            Response.Write("Login FAILED
")
        End If
    End Sub



Private Function DBAuthenticate(ByVal strUsername As String, ByVal strPassword As String) As Boolean
        Dim bResult As Boolean = False
        Dim cn As New Data.SqlClient.SqlConnection("")
        cn.ConnectionString = System.Configuration.ConfigurationManager.ConnectionStrings.Item("DatabaseConnectionString").ToString
        Dim strSQL As String
        Dim strDBPassword As String = ""
        Dim objCommand As New Data.SqlClient.SqlCommand
        objCommand.Connection = cn
        strSQL = String.Format("SELECT ID, password, ruolo, tipo FROM Anagrafica WHERE (Username='{0}');", strUsername)
        objCommand.CommandText = strSQL
        objCommand.CommandType = Data.CommandType.Text
        Dim rdr As Data.SqlClient.SqlDataReader
        cn.Open()
        rdr = objCommand.ExecuteReader
        If rdr.Read Then
            strDBPassword = CheckDBNull(rdr("password")) ' password salvata nel db
            bResult = strDBPassword = CryptPwd(strPassword, "SHA1")
            'debug, setto a true sempre
            bResult = True
            Session("Username") = strUsername
            Session("LoggedIn") = bResult
            Session("Ruolo") = CheckDBNull(rdr("Ruolo"))
            Session("Tipo") = CheckDBNull(rdr("Tipo"))
            Session("ID") = CheckDBNull(rdr("ID"))
            Session("Filtro") = CheckDBNull(rdr("Tipo"))
        End If
        cn.Close()
        Return bResult
    End Function

il problema e' che messa giu cosi si presta ad una "code Injection", se io nella password scrivo ad esempio: aaa 'OR 1=1' la qery ritornerà sempre un valore valido e quindi mi autentica in ogni caso. va fatto in modo che quel codice sql sia invalidato...

per il resto funziona alla grande.

nelle tue pagine (o nella master page, se la usi) metti un check della variabile "authenticated" che in caso di "false" rimanda alla pagina di login. In questo modo se uno uol far eil furbetto non puo' accedere alla pagina mettendo l'url completo.

HTH
Max.



Posts:811

--
21 set 2009 10.45  
Inserito da jzgrafica su 20 set 2009 16.32
infatti, ho provato così ( sul form della login ho due pulsanti, uno per la registrazione ed uno per l'accesso..quello per la registrazione finalmente funziona, grazie al vostro aiuto ) e quello per l'accesso l'ho strutturato così...

Allora, ho quotato l'inizio messaggio perché tu sappia a cosa rispondo:

i vbcr, vbtab ecc. messi dal convertitore sono porcherie perché VB non gestisce bene le stringhe su più righe, avrei dovuto pulirteli scusa.

Nel codice che hai inserito in questo messaggio,
hai fatto una  funzione che non esegue alcun comando pertanto non potrà mai funzionare.

Se vuoi fare una autenticazione modello base la select sarà:
Dim sql as string = "SELECT Login from Tbutenti where Login = @Login and Password = @Password"

Dim para as SQLParameter()  = new SqlParameter {
   New SqlParameter( "@Login", txtLogin.text),
   New SqlParameter( "@Password", txtPassword.text ) }

Dim cn as SqlConnection = new SqlConnection( "server.... ecc... la solita stringa")
Dim cmd as SqlCommand = new SqlCommand();
cmd.Connection = cn
cmd.CommandText =  sql
cmd.Parameters.AddRange(para)
Dim ret as Object = cmd.ExecuteScalar()

if( not ret isNull && not ret = System.DbNull.Value)
   Server.Transfer( "Default.Aspx")
else
  Server.Transfer( "login.aspx")
end if

Direi che così sei anche al sicuro dalla sql injection visto che i parametri sono nominali e controllati
saluti
Sabry



Sabrina

Posts:435

--
21 set 2009 11.20  
Ciao Boss !

e cosa succede se io metto user Pippo e password pluto or 1=1 ???

la query sql non mi diventa:

Dim sql as string = "SELECT Login from Tbutenti where Login = Pippo and Password = pluto or 1=1" ???

e' una domanda che mi sono posto...

Grazie.
Max



Posts:435

--
21 set 2009 11.24  
Ah, mi sono accorto di 2 cose, essendo ancora in debug il tutto:

1) la query SQL va corretta inserendo anche: and password='{1}' altrimenti a il check solo sul nome

2) bresult=true va tolto. l'ho messo solo per evitare di inserire la password tutte le volte che devo fare il login.

chiedo venia.
Max



Posts:435

--
21 set 2009 11.27  
Ne ho visto un'altra:

CryptPwd(strPassword, "SHA1")

e' una mia custom function che cripta una stringa di testo:

Public Shared Function CryptPwd(ByVal password As String, ByVal metodo As String) As String
        If metodo.ToUpper <> "SHA1" And metodo.ToUpper <> "MD5" Then
            metodo = "SHA1"
        End If
        Return FormsAuthentication.HashPasswordForStoringInConfigFile(password, metodo)
    End Function

Max



Posts:811

--
21 set 2009 12.29  
Perché non ci provi dal vero e vedi cosa succede usando il profiler di Windows?

Voglio dire, prova ad usare i parametri e vedi cosa succede con quel tipo di dato di input.

saluti
Sabry


Sabrina

Posts:129

--
21 set 2009 18.32  
Ciao grazie di cuore per la disponibilità... ^__^

Allora, l'utente si registra ed i dati  per ora solo nome e password ) vengono inseriti nel database....dovrei creare la select per verificare che, quando l'utente accede, sia effettivamente registrato..quindi...

Select nome e password --> se nome e password inseriti dall'utente corrispondono a nome e password selezionati dal DB allora l'utente accede alla pagina altrimenti no..

La mia select non funziona , ma poi stavo pensando come fare per far si che selezioni nome e password di una stessa riga ... non so se mi spiego, i due campi sono legati....mi spiego meglio, io posso anche inserire un nome che esiste nel DB ed una password che esiste nel DB , ma che non stanno sulla stessa riga...vorrei una select che evitasse questo rischio...

questo il mio codice ...



Dim cn2 As New SqlConnection()
        cn2.ConnectionString = "Data Source=JZONTINI;Initial Catalog=ioscauto;Integrated Security=True"
        cn2.Open()
        Dim cmd As New SqlCommand()
        Dim cmd2 As New SqlCommand
        cmd.Connection = cn2
        cmd2.Connection = cn2
        cmd.CommandText = mSqlselectnome
        cmd2.CommandText = mSqlselectPassword
        Dim strnome As String
        Dim strpass As String
        strnome = cmd.CommandText
        strpass = cmd2.CommandText

        If TB_nome.Text.ToString = strnome Then
            If TB_password.Text.ToString = strpass Then
                Server.Transfer("Default.aspx")


            End If
            If TB_password.Text.ToString <> strpass Then
                Me.Label3.Text = "errore"
                MsgBox("la password non corrisponde al nome", MsgBoxStyle.AbortRetryIgnore)
                Server.Transfer("Login.aspx")
            End If
        End If
      

     
        cmd.ExecuteNonQuery()
        cn2.Close()
e prima della classe pageLoad, cè questo codice:

Private mSqlselectnome As String = vbCr & vbLf & vbTab & vbTab & vbTab & "Select " & vbCr & vbLf & " ([nome]" & vbCr & vbLf & " )" & vbCr & vbLf & "From TabUtente" & vbCr & vbLf & vbTab & vbTab & vbTab
    Private mSqlselectPassword As String = vbCr & vbLf & vbTab & vbTab & vbTab & "Select " & vbCr & vbLf & " ([password]" & vbCr & vbLf & " )" & vbCr & vbLf & "From TabUtente" & vbCr & vbLf & vbTab & vbTab & vbTab




Posts:129

--
21 set 2009 19.02  
ops scusate , ho visto dopo che c'era una seconda pagina di risposte XD ho risolto con il codice di Sabrina ma....cos'aveva di errato la mia select ?



Posts:129

--
21 set 2009 19.03  
ah no niente , mi sono risposta da sola .. ma che ritardata che sono !!!!



Posts:129

--
21 set 2009 19.09  
invece, potresti spiegarmi di preciso cosa fa questa istruzione :


 Dim ret As Object = cmd.ExecuteScalar()

        If (ret <> 0 & Not ret Is System.DBNull.Value) Then
            Server.Transfer("Default.Aspx")
ExecuteScalar ? a cosa serve ? ret è un oggetto ma perchè dev'essere diverso da 0 ? e perchè deve esesre diverso da System.DBNull.Value ?



Posts:129

--
21 set 2009 20.25  
altro problemino...voglio vedere le foto che il lciente ha inserito...select dalla tabella TabCaratteristiche  (quella dove ci sono le auto inserite dal cliente ) ...
ho un form dove ho una DropDown per selezionare il modello dell'auto della quale voglio vedere le foto ... ecco il mio codice per veder ele foto..



Imports System
Imports System.Collections
Imports System.Configuration
Imports System.Data
Imports System.Linq
Imports System.Web
Imports System.Web.Security
Imports System.Web.UI
Imports System.Web.UI.HtmlControls
Imports System.Web.UI.WebControls
Imports System.Web.UI.WebControls.WebParts
Imports System.Xml.Linq
Imports System.Data.SqlClient
Imports System.IO
Imports System.Web.UI.ImageClickEventArgs

Partial Class VediFoto
    Inherits System.Web.UI.Page
    Private mssqlselect As String = "SELECT foto FROM TabCaratteristiche WHERE modello=@modello"
    Protected Sub Page_Load(ByVal sender As Object, ByVal e As System.EventArgs) Handles Me.Load
        Dim cn As New SqlConnection
        cn.ConnectionString = "Data Source=JZONTINI;Initial Catalog=ioscauto;Integrated Security=True"
        Dim cmd As New SqlCommand
        Dim para2 As SqlParameter() = _
            New SqlParameter() { _
           New SqlParameter("@modello", Me.DDL_Model.Text)}
        cmd.Connection = cn
        cn.Open()

        cmd.CommandText = mssqlselect
        cmd.Parameters.Add(para2)
        'Dim ret As Object = cmd.ExecuteScalar()

        'If (ret <> 0 & Not ret Is System.DBNull.Value) Then
        'Response.Write("Foto")
        'Else
        'Response.Write("Nessuna foto")
        'End If

        cmd.ExecuteNonQuery()
        cn.Close()

    End Sub
End Class

Quando faccio partire il debugger, nemmeno mi apre la pagina ma torna a VS e mi da l'errore sul cmd.parameters.add(para2)..l'errore che mi da è il seguente
SqlParameterCollection accetta solo oggetti di tipo SqlParameter non null, non oggetti SqlParameter[].
però in realtà il campo non è vuoto...io salvo il nome della foto( FileName per capirci ) .. volevo verificare se dal nome riusciva ad aprirmi le foto...per il codice foto , non lo riposto, l'ho postato ieri se non erro



Posts:129

--
21 set 2009 20.35  
risolto, anche se non capisco perchè...voglio dire, semplicemente voleva un parameters.AddRange anzichè un parameters.Add....però se il parametro è uno solo, perchè vuole un range di parametri ??

altroa cosa, ho aggiunto un pulsante vicino alla DDL per vedere le foto...ho spostato il codice precedente  (corretto ) nell'evento del Button....però non mi fa vedere la foto...non mi da errori, ma non fa nulla..



Posts:129

--
21 set 2009 20.55  
ok ...avevo dimenticato un pò di cose...ho fatto questo..

Imports System
Imports System.Collections
Imports System.Configuration
Imports System.Data
Imports System.Linq
Imports System.Web
Imports System.Web.Security
Imports System.Web.UI
Imports System.Web.UI.HtmlControls
Imports System.Web.UI.WebControls
Imports System.Web.UI.WebControls.WebParts
Imports System.Xml.Linq
Imports System.Data.SqlClient
Imports System.IO
Imports System.Web.UI.ImageClickEventArgs

Partial Class VediFoto
    Inherits System.Web.UI.Page
    Private mssqlselect As String = "SELECT foto FROM TabCaratteristiche WHERE modello=@modello"
    Protected Sub Page_Load(ByVal sender As Object, ByVal e As System.EventArgs) Handles Me.Load
        

    End Sub

    Protected Sub B_foto_Click(ByVal sender As Object, ByVal e As System.EventArgs) Handles B_foto.Click
        Dim cn As New SqlConnection
        cn.ConnectionString = "Data Source=JZONTINI;Initial Catalog=ioscauto;Integrated Security=True"
        Dim cmd As New SqlCommand
        Dim para2 As SqlParameter() = _
            New SqlParameter() { _
           New SqlParameter("@modello", Me.DDL_Model.Text)}

        cmd.Connection = cn


        cmd.CommandText = mssqlselect
        cmd.Parameters.AddRange(para2)
        
        cn.Open()

        cmd.ExecuteNonQuery()

        Dim ret As Object = cmd.ExecuteScalar()

        If (ret <> 0 & Not ret Is System.DBNull.Value) Then
            Dim nomef As String

            nomef = mssqlselect.ToString
            Drawing.Image.FromFile(nomef)
        Else
            Response.Write("Nessuna foto")
        End If
        cn.Close()
    End Sub
End Class
<br><br>
però mi da questo errore

<br>SELECT foto FROM TabCaratteristiche WHERE modello=@modello


Dico già ora che avevo provato a fare un altra select tipo DIm mssqlSelectFoto ="Select foto from Tabfoto" e poi nel codice avevo messo
Dim nomef as string
nomef =mssqlselectFoto.ToString
Drawing.Image.FromFile(nomef)<br><br>
però mi da errore lostesso..



Posts:435

--
22 set 2009 11.39  
Inserito da jzgrafica su 21 set 2009 20.09
invece, potresti spiegarmi di preciso cosa fa questa istruzione :


Dim ret As Object = cmd.ExecuteScalar()

If (ret <> 0 & Not ret Is System.DBNull.Value) Then
Server.Transfer("Default.Aspx")
ExecuteScalar ? a cosa serve ? ret è un oggetto ma perchè dev'essere diverso da 0 ? e perchè deve esesre diverso da System.DBNull.Value ?

Ciao,
Questa istruzione ti restituisce un oggetto (generico) di nome "ret" che contiene in realta' una datarow con il risultato della query.

ExecuteScalar e' una modalita di esecuzione delle query SQL che in pratica ti restituisce una sola riga (la prima) anziche' una tabella completa.
Viene usato perche' e' molto piu' eloce e meno esoso di risorse, ed e' perfetto quando devi eseguire query da cui ti aspetti una sola riga come risultato.
(questo articolo ne e' l'esempio perfetto).

HTH
Max.

p.s. non ho capito se hai risolto il problema della password, ma non devi fare 2 query, devi farne 1 con WHERE username = @utente AND password = @password. in questo modo sei sicura che l'intera accoppiata e' corretta.

p.p.s hai messo un controllo che lo usernamen on esista gia' quando si registrano, vero ? ;-)



Posts:129

--
22 set 2009 16.59  
ciao grazie per la spiegazione !! Ho risolto il problema della Login, ma non quello delle foto  (vedi due post precedenti ) ... ç___ç sono proprio senza speranza !



Posts:129

--
22 set 2009 17.00  
ps: posso inserire un link al vostro sito nel sito del mio cliente ? se si, mi date un banner da inserire ? (Per ora lo inserisco sul sito temporaneo in HTML che è già on-line, poi quando sarà pronto quello in ASP lo inserirò anche li ! )



Posts:811

--
22 set 2009 17.33  

Se usi Parameters.AddRange gli passi un array di parametri, se usi Parameters.Add devi passargli un solo parametro alla volta pertanto per usare Add invece di

dim para as SqlParameter() = new Sqlparameter() {

new SqlParameter( "@uno", "valore1"),

New SqlParameter("@Due", "valore2") }

Devi fare

dim para as new SqlParameter( "@singolo", "valore")

allora l'add ti funziona.

 



Sabrina

Posts:811

--
22 set 2009 17.41  
Il problema della foto credo che sia un problema di tipo filosofico esistenziale, perché vuoi estrarre la foto dal file?
In ASP usualmente basta dare all'elemento SRC del controllo il link all'immagine x ottenere la sua visualizzazione.

Non so che controllo usi x le immagini, però guarda qual'è l'attributo relativo all'immagine e se dalla tua select ricevi qualcosa del tipo:

"immagini\nomeimmagine.jpg" devi solo convertirla in un path relativo al server che la trasformerà in qualcosa del tipo

http://www.miosito.it/immagini/nomeimmagine.jpg"

oppure

"immagini/nomeimmagine.jpg"

credo l'istruzione sia
Server.mappath("immagini\miaimmagine.jpg")
o forse questo è il contrario??? non ricordo, MAX pensaci TUUU
ciao
Sabry


Sabrina

Posts:129

--
22 set 2009 19.06  
ora rifaccio altrimenti impazzisco...allora, nella pagina dove il cliente inserisce le auto, può inesrire anche le foto ( così poi i suoi clienti potranno vederle, per questo voglio che siano visualizzabili ) ...

il codice per salvare le foto in un determinato percorso è il seguente:






 If Not FU_foto.HasFile = False Then

            Dim filepath As String = FU_foto.PostedFile.FileName
            Dim pat As String = "\\(?:.+)\\(.+)\.(.+)"
            Dim r As Regex = New Regex(pat)
            'run
            Dim m As Match = r.Match(filepath)
            Dim file_ext As String = m.Groups(2).Captures(0).ToString()
            Dim filename As String = m.Groups(1).Captures(0).ToString()
            Dim filefoto As String = filename & "." & file_ext

            'save the file to the server
            FU_foto.PostedFile.SaveAs(Server.MapPath(".\") & filefoto)
            lblstatus.Text = "File Saved to: " & Server.MapPath(".\") & filefoto


E non comprendo questa regexp... ero abituata a php e con php si usano regexp comuni per altre cose..


Comunque, li c'è il codice per salvare le foto in un percorso e , poi, nell'istruzione sql, la foto viene salvata con il proprio nome  quindi non con il percorso ) ...

Io devo creare una pagina nella quale il cliente del mio cliente selezionerà l'auto da una DDL, cliccherà su un pulsante vedi foto e visualizzerà la foto in questione ( quindi la foto dell'auto che ha selezionato ) ..

per ora lo faccio in una pagina separata dal resto, poi quando avrò capito come si fa il pulsante "vedi foto" comparirà a fianco di ogni auto inserita dal mio cliente ( in una pagina dove verranno visualizzate tutte le sue auto, sempre con selezione DDL da parte dei suoi clienti )

IO STO DIVENTANDO SCEMA -.-'



Posts:129

--
22 set 2009 19.11  
Si, praticamente me lo state facendo voi il sito per il cliente !! Se mi paga ed è contento, vi farò una donazione del 20% giuro !!! Non so come avrei fatto senza di voi ! Prima di trovare voi avevo chiesto in 50000 forum ma nessuno mi ha mai risposto !! VI ADORO !!!!!!!!! siete troppo cortesi !! E la frase di cui sopra non era per scherzare! ( magari un pò meno del 20 % XD però vi farò sicuramente una donazioen ! )


Non sei autorizzato ad inviare una risposta.
Page 1 di 212 > >>


Active Forums 4.1
       
Articoli
Fritto misto - Classi di uso comune (parte 1)
Helper: Una classe per operare sulle stringhe
2007/10/20 | Autore: Sabrina Cosolo
Fritto Misto - Classi di uso comune (Parte 6)
Helper: Alcuni metodi per organizzarci nell'uso del file System
2007/10/28 | Autore: Sabrina Cosolo
ADO.NET Funzionalità di base
Effettuare una ricerca su recordset disconnessi tramite DataView
2007/12/02 | Autore: Andrea Zingoni
ASP.NET immagini dinamiche con HttpHandler
Costruiamo un HttpHandler per la creazione di immagini dinamiche
2007/10/24 | Autore: Rudy Azzan
Unit testing del codice (parte 2)
Generiamo alcuni unit test per la libreria Helper base ADO.NET
2008/03/09 | Autore: Sabrina Cosolo
SQL Server 2000/2005 Manutenzione Database
Uso di DBCC ShowContig e di sys.dm_db_index_physical_stats
2007/08/05 | Autore: Sabrina Cosolo
ADO.Net Nozioni di base (parte 1)
Una libreria helper base per usare comandi diretti in SQL Server
2008/03/09 | Autore: Sabrina Cosolo
Assembly Strong Named
Firma digitale degli Assembly, uso e funzionalità
2007/08/05 | Autore: Sabrina Cosolo
    Stampa     
Home|Forums|Blogs|Mappa del sito
© 2007-2010 by DotNetWork  .:.  Condizioni d'uso  .:.  Privacy  .:.  Accedi  .:.