[VB.NET]

mercoledì 17 ottobre 2007 - 07.26

sekaopen Profilo | Newbie

Buongiorno a tutti... è da poco che mi sono convertito da VB6 a VB.NET e sto ancora barcollando un po con le sintassi....
Il mio problema sta qui sotto:

CN.Open()

'Definisco la stringa SQL di inserimento sulla Tabella ANARIP
SQL = "INSERT INTO ANARIP (IDGUID, IDTICKET, CTRL, DATAREGISTRAZ, DATACONSEGNA, STATUS, IDCLIENTE, PRIVATOAZIENDA, " & _
"RAGSOC, INDIRIZZO, CAP, RECAPITITEL1, RECAPITITEL2, CELL1, CELL2, TIPOLOGIA, TIPORIF, NRRIF, LUOGOINT, DKM, " & _
"PRODOTTO, SISTOP, PASS, DICHIARATI, RISCONTRATI, PULIZIAVIRUS, PULIZIASPY, AGGDRIVER, AGGBIOS, SAVEDATA, " & _
"RIPRISTINOSO, INSTALLAZSO, INSTALLAZSW, INSTALLAZHW, PROVEHWSW, IMP, IVA1, IVA2, SCONTO, TOTALE, CREDITO) " & _
"VALUES (@IDGUID, @IDTICKET, @CTRL, @DATAREGISTRAZ, @DATACONSEGNA, @STATUS, @IDCLIENTE, @PRIVATOAZIENDA, " & _
"@RAGSOC, @INDIRIZZO, @CAP, @RECAPITITEL1, @RECAPITITEL2, @CELL1, @CELL2, @TIPOLOGIA, @TIPORIF, @NRRIF, @LUOGOINT, @DKM, " & _
"@PRODOTTO, @SISTOP, @PASS, @DICHIARATI, @RISCONTRATI, @PULIZIAVIRUS, @PULIZIASPY, @AGGDRIVER, @AGGBIOS, @SAVEDATA, " & _
"@RIPRISTINOSO, @INSTALLAZSO, @INSTALLAZSW, @INSTALLAZHW, @PROVEHWSW, @IMP, @IVA1, @IVA2, @SCONTO, @TOTALE, @CREDITO)"

Cmd = New OleDbCommand(SQL, CN)

'Definisco tutti i parametri usati nella stringa SQL

Cmd.Parameters.Add("@IDGUID", OleDbType.Char).Value = g
Cmd.Parameters.Add("@IDTICKET", OleDbType.Integer).Value = CInt(txtIDTicket.Text)
Cmd.Parameters.Add("@CTRL", OleDbType.Boolean).Value = chkCtrl.CheckState
Cmd.Parameters.Add("@DATAREGISTRAZ", OleDbType.Char).Value = txtDataRegistraz.Text
Cmd.Parameters.Add("@DATACONSEGNA", OleDbType.Char).Value = txtDataConsegna.Text
Cmd.Parameters.Add("@STATUS", OleDbType.Char).Value = cmbStatus.Text
Cmd.Parameters.Add("@IDCLIENTE", OleDbType.Integer).Value = CInt(txtIDCliente.Text)

..tutto bene fino a questo punto.... e quando txtIDCliente.text = "" .....ecco che arriva l'errore!!
Non riesce a scrivere un valore nullo...

come posso ovviare a questo problema in fase di scrittura??

------------------------------------------------------------------------------------------------------------------------------------

Stessa cosa in fase di lettura...

CN.Open()

'Eseguo la lettura del record
SQL = "SELECT * FROM ANARIP WHERE IDTICKET LIKE '" & NRec & "'"
Cmd = New OleDbCommand(SQL, CN)
DR = Cmd.ExecuteReader

DR.Read()
txtIDTicket.Text = DR("IDTICKET")
chkCtrl.Checked = DR("CTRL")
txtDataRegistraz.Text = DR("DATAREGISTRAZ")
txtDataConsegna.Text = DR("DATACONSEGNA")
cmbStatus.Text = DR("STATUS")
txtIDCliente.Text = DR("IDCLIENTE")

.....quando DR("IDCLIENTE") lo trova NULL, ecco che tutto mi va in errore....

-------------------------------------------------------------------------------------------------------------------------------------------

come posso gestire le 2 casistiche?? un grazie mille a chi mi puo' aiutare.... sto impazzendo!

Thomas.

SSUPERPIPPO Profilo | Guru

>Buongiorno a tutti... è da poco che mi sono convertito da VB6
>a VB.NET e sto ancora barcollando un po con le sintassi....
>Il mio problema sta qui sotto:
>
> CN.Open()
>
>'Definisco la stringa SQL di inserimento sulla Tabella ANARIP
>SQL = "INSERT INTO ANARIP (IDGUID, IDTICKET, CTRL, DATAREGISTRAZ,
>DATACONSEGNA, STATUS, IDCLIENTE, PRIVATOAZIENDA, " & _
>"RAGSOC, INDIRIZZO, CAP, RECAPITITEL1, RECAPITITEL2, CELL1, CELL2,
>TIPOLOGIA, TIPORIF, NRRIF, LUOGOINT, DKM, " & _
>"PRODOTTO, SISTOP, PASS, DICHIARATI, RISCONTRATI, PULIZIAVIRUS,
>PULIZIASPY, AGGDRIVER, AGGBIOS, SAVEDATA, " & _
>"RIPRISTINOSO, INSTALLAZSO, INSTALLAZSW, INSTALLAZHW, PROVEHWSW,
>IMP, IVA1, IVA2, SCONTO, TOTALE, CREDITO) " & _
>"VALUES (@IDGUID, @IDTICKET, @CTRL, @DATAREGISTRAZ, @DATACONSEGNA,
>@STATUS, @IDCLIENTE, @PRIVATOAZIENDA, " & _
>"@RAGSOC, @INDIRIZZO, @CAP, @RECAPITITEL1, @RECAPITITEL2, @CELL1,
>@CELL2, @TIPOLOGIA, @TIPORIF, @NRRIF, @LUOGOINT, @DKM, " & _
>"@PRODOTTO, @SISTOP, @PASS, @DICHIARATI, @RISCONTRATI, @PULIZIAVIRUS,
>@PULIZIASPY, @AGGDRIVER, @AGGBIOS, @SAVEDATA, " & _
>"@RIPRISTINOSO, @INSTALLAZSO, @INSTALLAZSW, @INSTALLAZHW, @PROVEHWSW,
>@IMP, @IVA1, @IVA2, @SCONTO, @TOTALE, @CREDITO)"
>
> Cmd = New OleDbCommand(SQL, CN)
>
>'Definisco tutti i parametri usati nella stringa SQL
>
>Cmd.Parameters.Add("@IDGUID", OleDbType.Char).Value = g
>Cmd.Parameters.Add("@IDTICKET", OleDbType.Integer).Value = CInt(txtIDTicket.Text)
>Cmd.Parameters.Add("@CTRL", OleDbType.Boolean).Value = chkCtrl.CheckState
>Cmd.Parameters.Add("@DATAREGISTRAZ", OleDbType.Char).Value =
>txtDataRegistraz.Text
>Cmd.Parameters.Add("@DATACONSEGNA", OleDbType.Char).Value = txtDataConsegna.Text
>Cmd.Parameters.Add("@STATUS", OleDbType.Char).Value = cmbStatus.Text
>Cmd.Parameters.Add("@IDCLIENTE", OleDbType.Integer).Value = CInt(txtIDCliente.Text)
>
>..tutto bene fino a questo punto.... e quando txtIDCliente.text
>= "" .....ecco che arriva l'errore!!
>Non riesce a scrivere un valore nullo...
>
>come posso ovviare a questo problema in fase di scrittura??

Che tipo di dato contiene il campo IDCliente del tuo Database? Numeric o Testo?

>
>------------------------------------------------------------------------------------------------------------------------------------
>
>Stessa cosa in fase di lettura...
>
> CN.Open()
>
> 'Eseguo la lettura del record
>SQL = "SELECT * FROM ANARIP WHERE IDTICKET LIKE '" & NRec & "'"
> Cmd = New OleDbCommand(SQL, CN)
> DR = Cmd.ExecuteReader
>
> DR.Read()
> txtIDTicket.Text = DR("IDTICKET")
> chkCtrl.Checked = DR("CTRL")
> txtDataRegistraz.Text = DR("DATAREGISTRAZ")
> txtDataConsegna.Text = DR("DATACONSEGNA")
> cmbStatus.Text = DR("STATUS")
> txtIDCliente.Text = DR("IDCLIENTE")
>
>.....quando DR("IDCLIENTE") lo trova NULL, ecco che tutto mi
>va in errore....
>

Prima di imputare il contenuto del campo sevi verificare che non sia NULL:

if not IsDbNull(DR("IDCLIENTE")) then txtIDCliente.Text=DR("IDCLIENTE") else txtIDCliente.Text=""

>-------------------------------------------------------------------------------------------------------------------------------------------
>
>come posso gestire le 2 casistiche?? un grazie mille a chi mi
>puo' aiutare.... sto impazzendo!
>
>Thomas.
>

Prego, ciao

Alessandro

http://blogs.dotnethell.it/alebadalin

sekaopen Profilo | Newbie

Che tipo di dato contiene il campo IDCliente del tuo Database? Numeric o Testo?

il campo IDTicket ed IDCliente sono Numerici. Con il testo in effetti non mi va in errore.....

Nessun errore con cmbStatus="" oppure cmbStatus="Riparato":
Cmd.Parameters.Add("@STATUS", OleDbType.Char).Value = cmbStatus.Text

Errore solo se txtIDCliente="", se invece txtIDCliente="00001" tutto funge:
Cmd.Parameters.Add("@IDCLIENTE", OleDbType.Integer).Value = CInt(txtIDCliente.Text)

....come mai?

Grazie SSUPERPIPPO!

SSUPERPIPPO Profilo | Guru

>Che tipo di dato contiene il campo IDCliente del tuo Database?
>Numeric o Testo?
>
>il campo IDTicket ed IDCliente sono Numerici. Con il testo in
>effetti non mi va in errore.....
>
>Nessun errore con cmbStatus="" oppure cmbStatus="Riparato":
>Cmd.Parameters.Add("@STATUS", OleDbType.Char).Value = cmbStatus.Text
>
>Errore solo se txtIDCliente="", se invece txtIDCliente="00001"
>tutto funge:
>Cmd.Parameters.Add("@IDCLIENTE", OleDbType.Integer).Value = CInt(txtIDCliente.Text)
>
>....come mai?
>
>Grazie SSUPERPIPPO!

Prova a fare così. Anzichè dirgli tu il formato dei parametri che gli passi, lascia che sia VB a convertire il dato nel formato corretto utilizzando il metodo AddWithValue in questo modo:

Cmd.Parameters.AddWithValue("@IDCliente", TxtIDCliente.Text)

Fammi sapere se così funziona.

Ciao

Alessandro

http://blogs.dotnethell.it/alebadalin

sekaopen Profilo | Newbie

Avevo gia' provato, ma ho ritentato per scaramanzia....

Nulla da fare...

CN.Open()

'Definisco la stringa SQL di inserimento aulla Tabella ANARIP
SQL = "INSERT INTO ANARIP (IDGUID, IDTICKET, CTRL, DATAREGISTRAZ, DATACONSEGNA, STATUS, IDCLIENTE, PRIVATOAZIENDA, " & _
"RAGSOC, INDIRIZZO, CAP, RECAPITITEL1, RECAPITITEL2, CELL1, CELL2, TIPOLOGIA, TIPORIF, NRRIF, LUOGOINT, DKM, " & _
"PRODOTTO, SISTOP, PASS, DICHIARATI, RISCONTRATI, PULIZIAVIRUS, PULIZIASPY, AGGDRIVER, AGGBIOS, SAVEDATA, " & _
"RIPRISTINOSO, INSTALLAZSO, INSTALLAZSW, INSTALLAZHW, PROVEHWSW, IMP, IVA1, IVA2, SCONTO, TOTALE, CREDITO) " & _
"VALUES (@IDGUID, @IDTICKET, @CTRL, @DATAREGISTRAZ, @DATACONSEGNA, @STATUS, @IDCLIENTE, @PRIVATOAZIENDA, " & _
"@RAGSOC, @INDIRIZZO, @CAP, @RECAPITITEL1, @RECAPITITEL2, @CELL1, @CELL2, @TIPOLOGIA, @TIPORIF, @NRRIF, @LUOGOINT, @DKM, " & _
"@PRODOTTO, @SISTOP, @PASS, @DICHIARATI, @RISCONTRATI, @PULIZIAVIRUS, @PULIZIASPY, @AGGDRIVER, @AGGBIOS, @SAVEDATA, " & _
"@RIPRISTINOSO, @INSTALLAZSO, @INSTALLAZSW, @INSTALLAZHW, @PROVEHWSW, @IMP, @IVA1, @IVA2, @SCONTO, @TOTALE, @CREDITO)"

Cmd = New OleDbCommand(SQL, CN)

'Definisco tutti i parametri usati nella stringa SQL

Cmd.Parameters.Add("@IDGUID", OleDbType.Char).Value = g
Cmd.Parameters.Add("@IDTICKET", OleDbType.Integer).Value = CInt(txtIDTicket.Text)
Cmd.Parameters.Add("@CTRL", OleDbType.Boolean).Value = chkCtrl.CheckState
Cmd.Parameters.Add("@DATAREGISTRAZ", OleDbType.Char).Value = txtDataRegistraz.Text
Cmd.Parameters.Add("@DATACONSEGNA", OleDbType.Char).Value = txtDataConsegna.Text
Cmd.Parameters.Add("@STATUS", OleDbType.Char).Value = cmbStatus.Text

Cmd.Parameters.AddWithValue("@IDCliente", txtIDCliente.text)

If optPrivato.Checked = True Then
Cmd.Parameters.Add("@PRIVATOAZIENDA", OleDbType.Char).Value = "P"
Else
Cmd.Parameters.Add("@PRIVATOAZIENDA", OleDbType.Char).Value = "A"
End If
Cmd.Parameters.Add("@RAGSOC", OleDbType.Char).Value = txtRagSoc.Text
Cmd.Parameters.Add("@INDIRIZZO", OleDbType.Char).Value = txtIndirizzo.Text
Cmd.Parameters.Add("@CAP", OleDbType.Char).Value = txtCAP.Text
Cmd.Parameters.Add("@RECAPITITEL1", OleDbType.Char).Value = txtRecapitiTel1.Text
Cmd.Parameters.Add("@RECAPITITEL2", OleDbType.Char).Value = txtRecapitiTel2.Text
Cmd.Parameters.Add("@CELL1", OleDbType.Char).Value = txtCell1.Text
Cmd.Parameters.Add("@CELL2", OleDbType.Char).Value = txtCell2.Text
Cmd.Parameters.Add("@TIPOLOGIA", OleDbType.Char).Value = cmbTipologia.Text
Cmd.Parameters.Add("@TIPORIF", OleDbType.Char).Value = cmbTipoRif.Text
Cmd.Parameters.Add("@NRRIF", OleDbType.Char).Value = txtNrRif.Text
Cmd.Parameters.Add("@LUOGOINT", OleDbType.Char).Value = cmbLuogoInt.Text
Cmd.Parameters.Add("@DKM", OleDbType.Char).Value = txtDKm.Text
Cmd.Parameters.Add("@PRODOTTO", OleDbType.Char).Value = cmbProdotto.Text
Cmd.Parameters.Add("@SISTOP", OleDbType.Char).Value = cmbSistOp.Text
Cmd.Parameters.Add("@PASS", OleDbType.Char).Value = txtPassword.Text
Cmd.Parameters.Add("@DICHIARATI", OleDbType.Char).Value = txtDichiarati.Text
Cmd.Parameters.Add("@RISCONTRATI", OleDbType.Char).Value = txtRiscontrati.Text
Cmd.Parameters.Add("@PULIZIAVIRUS", OleDbType.Boolean).Value = chkPuliziaVirus.Checked
Cmd.Parameters.Add("@PULIZIASPY", OleDbType.Boolean).Value = chkPuliziaSpy.Checked
Cmd.Parameters.Add("@AGGDRIVER", OleDbType.Boolean).Value = chkAggDriver.Checked
Cmd.Parameters.Add("@AGGBIOS", OleDbType.Boolean).Value = chkAggBIOS.Checked
Cmd.Parameters.Add("@SAVEDATA", OleDbType.Boolean).Value = chkSaveData.Checked
Cmd.Parameters.Add("@RIPRISTINOSO", OleDbType.Boolean).Value = chkRipristinoSO.CheckState
Cmd.Parameters.Add("@INSTALLAZSO", OleDbType.Boolean).Value = chkInstallazSO.CheckState
Cmd.Parameters.Add("@INSTALLAZSW", OleDbType.Boolean).Value = chkInstallazSW.CheckState
Cmd.Parameters.Add("@INSTALLAZHW", OleDbType.Boolean).Value = chkInstallazHW.CheckState
Cmd.Parameters.Add("@PROVEHWSW", OleDbType.Boolean).Value = chkProveHWSW.CheckState
Cmd.Parameters.Add("@IMP", OleDbType.Char).Value = txtImp.Text
Cmd.Parameters.Add("@IVA1", OleDbType.Char).Value = cmbIVA1.Text
Cmd.Parameters.Add("@IVA2", OleDbType.Char).Value = txtIVA2.Text
Cmd.Parameters.Add("@SCONTO", OleDbType.Char).Value = txtSconto.Text
Cmd.Parameters.Add("@TOTALE", OleDbType.Char).Value = txtTotale.Text
Cmd.Parameters.Add("@CREDITO", OleDbType.Char).Value = cmbCredito.Text

temp_num = Cmd.ExecuteNonQuery

ma in debug tutto si blocca al lancio della query conquesto errore: "Tipi di dati non corrispondenti nell'espressione criterio."

...porca zozza sto impazzendo!!
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-2025
Running on Windows Server 2008 R2 Standard, SQL Server 2012 & ASP.NET 3.5