L'SQL mi farà impazzire

lunedì 18 febbraio 2008 - 10.59

albedo Profilo | Junior Member

Perché non funziona?

Dim dr As OleDb.OleDbDataReader
Dim cmd As New OleDb.OleDbCommand("SELECT CLIENTE FROM CLIENTI WHERE ID_CLI = 1", cn) '& Griglia_Vendite.Item(11, rw).Value, cn)
dr = cmd.ExecuteReader
Griglia_Vendite.Item(0, 1).Value = dr.Item("CLIENTE")
dr.Close()

Mi dice che OleDb.OleDbException non è stata gestita e che i "Tipi di dati non corrispondenti nell'espressione criterio."Mah!

Grazie

lbenaglia Profilo | Guru

>Griglia_Vendite.Item(0, 1).Value = dr.Item("CLIENTE")

Hai provato ad utilizzare i metodi GetXXX in base al data type della colonna?
http://msdn2.microsoft.com/en-us/library/system.data.sqlclient.sqldatareader_members.aspx

>Grazie
Prego.

Ciao!
--
Lorenzo Benaglia
Microsoft MVP - SQL Server
http://blogs.dotnethell.it/lorenzo/
http://italy.mvps.org

albedo Profilo | Junior Member

>>Griglia_Vendite.Item(0, 1).Value = dr.Item("CLIENTE")
>
>Hai provato ad utilizzare i metodi GetXXX in base al data type
>della colonna?
>http://msdn2.microsoft.com/en-us/library/system.data.sqlclient.sqldatareader_members.aspx
>
>>Grazie
>Prego.
>
>Ciao!
>--
>Lorenzo Benaglia
>Microsoft MVP - SQL Server
>http://blogs.dotnethell.it/lorenzo/
>http://italy.mvps.org

Sì, provato e non ci resco.

Ma allora perché questa qury, scitta in questo modo funziona?

sql = "select CLIENTE from CLIENTI where ID_CLI=?"
Dim cmd As New OleDb.OleDbCommand(sql, cn)
cmd.Parameters.AddWithValue("ID_CLI", Item(0, rw).Value)
dr = cmd.ExecuteReader
Griglia_Vendite.Item(1, rw).Value = dr.Item("CLIENTE")

Grazie ciao

lbenaglia Profilo | Guru

>Ma allora perché questa qury, scitta in questo modo funziona?
>
>sql = "select CLIENTE from CLIENTI where ID_CLI=?"

Separiamo le due cose: Query SQL e codice ADO.NET.
Dove hai il problema?
Con che DBMS stai lavorando?
Puoi fornirci un esempio completo in modo da riprodurre l'anomalia?

>Grazie ciao
Prego.

Ciao!
--
Lorenzo Benaglia
Microsoft MVP - SQL Server
http://blogs.dotnethell.it/lorenzo/
http://italy.mvps.org

albedo Profilo | Junior Member

>>Ma allora perché questa qury, scitta in questo modo funziona?
>>
>>sql = "select CLIENTE from CLIENTI where ID_CLI=?"
>
>Separiamo le due cose: Query SQL e codice ADO.NET.
>Dove hai il problema?
>Con che DBMS stai lavorando?
>Puoi fornirci un esempio completo in modo da riprodurre l'anomalia?
>
>>Grazie ciao
>Prego.
>
>Ciao!
>--
>Lorenzo Benaglia
>Microsoft MVP - SQL Server
>http://blogs.dotnethell.it/lorenzo/
>http://italy.mvps.org

OK, ti fornisco l'esempio completo:

Imports System.Data.OleDb
Imports System.Windows.Forms

Public Class DGVMod
Inherits DataGridView

<System.Security.Permissions.UIPermission( _
System.Security.Permissions.SecurityAction.LinkDemand, _
Window:=System.Security.Permissions.UIPermissionWindow.AllWindows)> _
Protected Overrides Function ProcessDialogKey( _
ByVal keyData As Keys) As Boolean


cl = CurrentCell.ColumnIndex
rw = CurrentCell.RowIndex

Dim key As Keys = keyData And Keys.KeyCode

If key = Keys.Enter Then

Try
Select Case cl
Case Is = 0
Return Me.ProcessRightKey(keyData)

Case Is = 1
sql = "select FORNITORE from FORNITORI where ID_FOR=?"
Dim cmd As New OleDb.OleDbCommand(sql, cn)
cmd.Parameters.AddWithValue("ID_FOR", Item(1, rw).Value)
dr = cmd.ExecuteReader
Do While dr.Read
If dr.HasRows Then
Item(2, rw).Value = dr.Item("FORNITORE")
CurrentCell = Item(2, rw)
Return Me.ProcessRightKey(keyData)
Else
CurrentCell = Item(0, rw)
Return Me.ProcessRightKey(keyData)
End If
Loop
dr.Close()
Case Is = 2
CurrentCell = Item(2, rw)

Case Is = 3
CurrentCell = Item(4, rw)
Return Me.ProcessRightKey(keyData)

Case Is = 4
Return Me.ProcessRightKey(keyData)

Case Is = 5
Return Me.ProcessRightKey(keyData)

Case Is = 6
Return Me.ProcessRightKey(keyData)

Case Is = 7
CurrentCell = Item(8, rw)
Return Me.ProcessRightKey(keyData)

Case Is = 8
Return Me.ProcessRightKey(keyData)

Case Is = 9
If Rows.Count - 1 = rw Then
Rows.Add()
CurrentCell = Item(0, rw + 1)
Return Me.ProcessRightKey(keyData)
Else
CurrentCell = Item(0, rw + 1)
Return Me.ProcessRightKey(keyData)
End If
Dim u As Integer
Form1.Tot_Text.Text = 0
For u = 0 To Rows.Count - 1

Form1.Tot_Text.Text = Val(Item(8, u).Value) + Val(Form1.Tot_Text.Text)

Next
End Select
Catch
End Try
End If

Return MyBase.ProcessDialogKey(keyData)



End Function

<System.Security.Permissions.SecurityPermission( _
System.Security.Permissions.SecurityAction.LinkDemand, Flags:= _
System.Security.Permissions.SecurityPermissionFlag.UnmanagedCode)> _
Protected Overrides Function ProcessDataGridViewKey( _
ByVal e As System.Windows.Forms.KeyEventArgs) As Boolean

cl = CurrentCell.ColumnIndex
rw = CurrentCell.RowIndex



If e.KeyCode = Keys.Enter Then
Try
Select Case cl
Case Is = 0
Return Me.ProcessRightKey(e.KeyData)

Case Is = 1

sql = "select FORNITORE from FORNITORI where ID_FOR=?"
Dim cmd As New OleDb.OleDbCommand(sql, cn)
cmd.Parameters.AddWithValue("ID_FOR", Item(1, rw).Value)
dr = cmd.ExecuteReader
Do While dr.Read
If dr.HasRows Then
Item(2, rw).Value = dr.Item("FORNITORE")
CurrentCell = Item(2, rw)
Return Me.ProcessRightKey(e.KeyData)
Else
CurrentCell = Item(0, rw)
Return Me.ProcessRightKey(e.KeyData)
End If
Loop
dr.Close()
Case Is = 2
CurrentCell = Item(2, rw)

Case Is = 3
CurrentCell = Item(4, rw)
Return Me.ProcessRightKey(e.KeyData)

Case Is = 4
Return Me.ProcessRightKey(e.KeyData)

Case Is = 5
Return Me.ProcessRightKey(e.KeyData)

Case Is = 6
Return Me.ProcessRightKey(e.KeyData)

Case Is = 7
CurrentCell = Item(8, rw)
Return Me.ProcessRightKey(e.KeyData)

Case Is = 8
Return Me.ProcessRightKey(e.KeyData)

Case Is = 9
If Rows.Count - 1 = rw Then
Rows.Add()
CurrentCell = Item(0, rw + 1)
Return Me.ProcessRightKey(e.KeyData)

Else
CurrentCell = Item(0, rw + 1)
Return Me.ProcessRightKey(e.KeyData)
End If
Dim u As Integer
Form1.Tot_Text.Text = 0
For u = 0 To Rows.Count - 1

Form1.Tot_Text.Text = Val(Item(8, u).Value) + Val(Form1.Tot_Text.Text)

Next
End Select
Catch
End Try
End If

Return MyBase.ProcessDataGridViewKey(e)


End Function

Protected Overrides Sub OnCellValidated(ByVal e As System.Windows.Forms.DataGridViewCellEventArgs)

Try
Select Case cl

Case Is = 1

sql = "select FORNITORE from FORNITORI where ID_FOR=?"
Dim cmd As New OleDb.OleDbCommand(sql, cn)
cmd.Parameters.AddWithValue("ID_FOR", Item(1, rw).Value)
dr = cmd.ExecuteReader
If dr.HasRows And Item(11, rw).Value = 0 Then
Do While dr.Read
Item(2, rw).Value = dr.Item("FORNITORE")
Loop

ElseIf dr.HasRows And Item(11, rw).Value > 0 Then
Do While dr.Read
Item(2, rw).Value = dr.Item("FORNITORE")
Loop
cmd = New OleDb.OleDbCommand("UPDATE VENDITE SET ID_FOR = " & Item(1, rw).Value & ", FORNITORE = '" & Item(2, rw).Value & "' WHERE ID_VEN = " & Item(11, rw).Value, cn)
dr = cmd.ExecuteReader
dr.Close()
Else
MsgBox("CVCB")
CurrentCell = Item(2, rw)
End If

Case Is = 3

sql = "select ARTICOLO, ALIQUOTA from ARTICOLI where ID_ART=?"
Dim cmd As New OleDb.OleDbCommand(sql, cn)
cmd.Parameters.AddWithValue("ID_ART", Item(3, rw).Value)
'cmd.Parameters.AddWithValue("ALIQUOTA", Item(4, rw).Value)

dr = cmd.ExecuteReader

If dr.HasRows And Item(11, rw).Value = 0 Then
Do While dr.Read
Item(4, rw).Value = dr.Item("ARTICOLO")
Item(12, rw).Value = dr.Item("ALIQUOTA")
Loop

ElseIf dr.HasRows And Item(11, rw).Value > 0 Then
Do While dr.Read
Item(4, rw).Value = dr.Item("ARTICOLO")
Loop
cmd = New OleDb.OleDbCommand("UPDATE VENDITE SET ID_AR = " & Item(3, rw).Value & ", ARTICOLO = '" & Item(4, rw).Value & "' WHERE ID_VEN = " & Item(11, rw).Value, cn)
dr = cmd.ExecuteReader
dr.Close()
Else
MsgBox("CVCB")
'CurrentCell = Item(2, rw)
End If

Case Is = 5
If Item(11, rw).Value > 0 Then
Dim cmd As New OleDb.OleDbCommand("UPDATE VENDITE SET COLLI = " & Item(5, rw).Value & " WHERE ID_VEN = " & Item(11, rw).Value, cn)
dr = cmd.ExecuteReader
dr.Close()
End If

Case Is = 6
'Dim aliq As Double
If Item(12, rw).Value > 0 Then
Item(12, rw).Value = Val(Item(12, rw).Value) + (Val(Form1.Iva_Text.Text) - Val(Item(12, rw).Value))
End If
Item(8, rw).Value = (Val(Item(6, rw).Value) * Val(Item(7, rw).Value)) + _
(Val(Item(6, rw).Value) * Val(Item(7, rw).Value)) / 100 * Item(12, rw).Value
If Item(11, rw).Value > 0 Then
Dim cmd As New OleDb.OleDbCommand("UPDATE VENDITE SET PESO = " & Item(6, rw).Value & ", PREZZO = " & Item(7, rw).Value & ", SUBTOTALE = " & Item(8, rw).Value & " WHERE ID_VEN = " & Item(11, rw).Value, cn)
dr = cmd.ExecuteReader
dr.Close()
End If

Case Is = 7
'Dim aliq As Double
If Item(12, rw).Value > 0 Then
Item(12, rw).Value = Val(Item(12, rw).Value) + (Val(Form1.Iva_Text.Text) - Val(Item(12, rw).Value))
End If
Item(8, rw).Value = (Val(Item(6, rw).Value) * Val(Item(7, rw).Value)) + _
(Val(Item(6, rw).Value) * Val(Item(7, rw).Value)) / 100 * Item(12, rw).Value
If Item(11, rw).Value > 0 Then
Dim cmd As New OleDb.OleDbCommand("UPDATE VENDITE SET PESO = " & Item(6, rw).Value & ", PREZZO = " & Item(7, rw).Value & ", SUBTOTALE = " & Item(8, rw).Value & " WHERE ID_VEN = " & Item(11, rw).Value, cn)
dr = cmd.ExecuteReader
dr.Close()
End If

Case Is = 9

sql = "select CLIENTE from CLIENTI where ID_CLI=?"
Dim cmd As New OleDb.OleDbCommand(sql, cn)
cmd.Parameters.AddWithValue("ID_CLI", Item(9, rw).Value)
dr = cmd.ExecuteReader

If dr.HasRows Then
Do While dr.Read
Item(10, rw).Value = dr.Item("CLIENTE")
Loop
Else
Item(10, rw).Value = ""
MsgBox("qui ci scriverò qualcosa")
End If

If Item(11, rw).Value > 0 Then
cmd = New OleDb.OleDbCommand("UPDATE VENDITE SET ID_CLI = " & Item(9, rw).Value & ", CLIENTE = '" & Item(10, rw).Value & "' WHERE ID_VEN = " & Item(11, rw).Value, cn)
dr = cmd.ExecuteReader
dr.Close()
Else

Dim objCmd As OleDb.OleDbCommand
objCmd = New OleDb.OleDbCommand("Insert into VENDITE (DATA, ID_FOR, FORNITORE, ID_AR, ARTICOLO, COLLI ,PESO, PREZZO, SUBTOTALE, ID_CLI, CLIENTE, ALIQUOTA) Values (" & "'" & Item(0, rw).Value & "'" _
& ",'" & Item(1, rw).Value & "'" _
& ",'" & Item(2, rw).Value & "'" _
& ",'" & Item(3, rw).Value & "'" _
& ",'" & Item(4, rw).Value & "'" _
& ",'" & Item(5, rw).Value & "'" _
& ",'" & Item(6, rw).Value & "'" _
& ",'" & Item(7, rw).Value & "'" _
& ",'" & Item(8, rw).Value & "'" _
& ",'" & Item(9, rw).Value & "'" _
& ",'" & Item(10, rw).Value & "'" _
& ",'" & Item(12, rw).Value & "'" & ")", cn)

Dim LastID As Integer
objCmd.ExecuteNonQuery()

objCmd = New OleDb.OleDbCommand("SELECT @@IDENTITY", cn)

LastID = objCmd.ExecuteScalar()
Item(11, rw).Value = LastID


End If



End Select
Catch
MsgBox("Alcuni campi sono stati lasciati vuoti. Si prega di riempirli")

Finally
Item(0, rw).Value = Format(Now, "dd/MM/yyyy")

End Try


MyBase.OnCellValidated(e)

End Sub
Protected Overrides Sub OnKeyUp(ByVal e As System.Windows.Forms.KeyEventArgs)
If e.KeyCode = Keys.F4 Then
If Item(11, rw).Value > 0 Then
CurrentRow.Selected = True

Dim del As Integer = MsgBox("la riga n° " & CurrentCell.RowIndex + 1 & " verrà eliminata, continuare?", vbYesNo + vbExclamation + vbDefaultButton2, "Squarcio")
If del = DialogResult.Yes Then
Dim cmd As New OleDb.OleDbCommand("DELETE FROM VENDITE WHERE ID_VEN = " & Item(11, rw).Value, cn)
dr = cmd.ExecuteReader
dr.Close()
Rows.Remove(SelectedRows(0))
Else
CurrentRow.Selected = False
End If

End If

End If

MyBase.OnKeyUp(e)
End Sub
End Class

_________________________________________________________

In sostanza, vorrei che qualora inserissi un ID inesistente nella cella 1, o nella 4 o nella 9 il focus non si spostasse.

durante l'esecuzione si comporta come se la condizione HasRows fosse sempre False, il che è piuttosto bizzarro.

Tengo a precisare che buona parte del codice l'ho sviluppata grazie all'aiuto ricevuto dagli utenti di questo forum, che non rimngrazierò mai abbastanza.

Ciao

albedo Profilo | Junior Member

e questo è quello che ho inserito in un modulo:

Public Const ConnString As String = "Provider=Microsoft.Jet.OLEDB.4.0;" _
& "Data Source=C:\Documents and Settings\Fabio\" _
& "Documenti\" _
& "Squarcio.mdb;" 'Dichiaro la stringa di connessione
Public cn As New OleDb.OleDbConnection(ConnString) 'Dichiaro la nuova connessione
Public rw As Integer
Public cl As Integer
Public sql As String
Public dr As OleDbDataReader
Public I As Integer

lbenaglia Profilo | Guru

>OK, ti fornisco l'esempio completo:
Non ci siamo capiti. Con esempio completo intendevo database + un progetto Visual Studio.
Inoltre ti invito a rispondere alle domande che ti ho posto nel precedente post.

--
Lorenzo Benaglia
Microsoft MVP - SQL Server
http://blogs.dotnethell.it/lorenzo/
http://italy.mvps.org

albedo Profilo | Junior Member

ok, Ecco il progetto, non l'ho caricato prima perché come vedra è molto semplice... è presente un file mdb e sulla form c'è solo una datagridview e un altro paio di oggetti, tutto qua.

Spero che così possa chiarirmi le idee.

Grazie

albedo Profilo | Junior Member

Ooops, al string di connessine va adattata, ovviamente
e per quanto riguarda il link che mi hai fornito sto dando un'occhiata ai vari Getxxx, ma per il momento non ho ottenuto molte (niente, in pratica).

Ciao

lbenaglia Profilo | Guru

>ok, Ecco il progetto, non l'ho caricato prima perché come vedra
>è molto semplice... è presente un file mdb e sulla form c'è solo
>una datagridview e un altro paio di oggetti, tutto qua.

Non ho installato Crystal Reports ed il progetto mi segnala un mucchio di errori.
Ad ogni modo ho dato una sbirciata al db.
Per quale motivo tutti gli ID sono definiti come Text 255 se contengono SOLO informazioni numeriche?
Nel primo post hai scritto:

Il codice sorgente non è stato renderizzato qui
perchè non c'è sufficiente spazio.
Clicca qui per visualizzarlo in una nuova finestra

Dato che ID_CLI è definito come Text 255 il valore 1 devi recchiuderlo tra singoli apici:

Il codice sorgente non è stato renderizzato qui
perchè non c'è sufficiente spazio.
Clicca qui per visualizzarlo in una nuova finestra

Ad ogni modo ti suggerisco di specificare tutti gli ID come numeri interi sui quali definire dei constraint di PRIMARY KEY (dalla parte 1 delle relazioni) ed un constraint FOREIGN KEY (dalla parte molti della relazione), non dimenticando di indicizzare le FK.

>Grazie
Prego.

Ciao!
--
Lorenzo Benaglia
Microsoft MVP - SQL Server
http://blogs.dotnethell.it/lorenzo/
http://italy.mvps.org

albedo Profilo | Junior Member

>>ok, Ecco il progetto, non l'ho caricato prima perché come vedra
>>è molto semplice... è presente un file mdb e sulla form c'è solo
>>una datagridview e un altro paio di oggetti, tutto qua.
>
>Non ho installato Crystal Reports ed il progetto mi segnala un
>mucchio di errori.
>Ad ogni modo ho dato una sbirciata al db.
>Per quale motivo tutti gli ID sono definiti come Text 255 se
>contengono SOLO informazioni numeriche?
>Nel primo post hai scritto:
>
>Dim cmd As New OleDb.OleDbCommand("SELECT CLIENTE FROM CLIENTI
>WHERE ID_CLI = 1", cn) '& Griglia_Vendite.Item(11, rw).Value,
>cn)
>
>Dato che ID_CLI è definito come Text 255 il valore 1 devi recchiuderlo
>tra singoli apici:
>
>Dim cmd As New OleDb.OleDbCommand("SELECT CLIENTE FROM CLIENTI
>WHERE ID_CLI = '1'", cn) '& Griglia_Vendite.Item(11, rw).Value,
>cn)
>
>Ad ogni modo ti suggerisco di specificare tutti gli ID come numeri
>interi sui quali definire dei constraint di PRIMARY KEY (dalla
>parte 1 delle relazioni) ed un constraint FOREIGN KEY (dalla
>parte molti della relazione), non dimenticando di indicizzare
>le FK.
>
>>Grazie
>Prego.
>
>Ciao!
>--
>Lorenzo Benaglia
>Microsoft MVP - SQL Server
>http://blogs.dotnethell.it/lorenzo/
>http://italy.mvps.org

Gli ID sono impostati come testo perché vorrei essere libero di inserire ID alfanumerici
Anche ponendo gli apici quella query mi restituisce errore.

mi spiace che tu non riesca ad aprire il progeto... cmq l'effetto che desideravo ottenere era che qualora l'ID fosee inesistente il focus tornasse sulla cella di index pari a 1 (mhhhh... l'avevo già detto, scusa) ora, ho scritto questo:
Case Is = 1
'CurrentCell = Item(2, rw)
'Return Me.ProcessRightKey(keyData)
'*******************************************************
'QUESTA PARTE DI CODICE "DOVREBBE" IMPEDIRE

'CHE IL FOCUS SI SPOSTI SULLA CELLA DI INDICE PARI A 3

'QUALORA IL RECORD RICHIAMATO FOSSE VUOTO:

sql = "select FORNITORE from FORNITORI where ID_FOR=?"
Dim cmd As New OleDb.OleDbCommand(sql, cn)
cmd.Parameters.AddWithValue("ID_FOR", Item(1, rw).Value)
dr = cmd.ExecuteReader
dr.Read()
If dr.HasRows Then
While dr.Read
CurrentCell = Item(2, rw)
Return Me.ProcessRightKey(keyData)
dr.Close()
End While
Else
CurrentCell = Item(0, rw)
Return Me.ProcessRightKey(keyData)
dr.Close()
End If

solo che accada una cosa strana:
esempio: digito 1 e do invio... nella cella di index 2 compare il nome MATTEO perché l'evento onCellValidated ha attivato la query che è andata a pescare 'MATTEO' nel DB, ma il focus non si sposta dalla cella di index pari a 1, ma se digito nuovamente enter si sposta nella cella di index pari a 3, in pratica è come se alla prima pressione del tasti invio, la condizione 'HasRows' risultasse 'False' e, successivamentre, al secondo invio, risultasse 'True'.

Sono convinto che la soluzione è sotto i miei occhi è che è più semplice di quanto si possa immaginare, ma al momento sono impallato e ho voglia di tirare un bel cazzotto al monitor

ah, dimenticavo: se per caso digito un codice cui non è associato alcun forniore, tutto funziona regolarmente, nel senso che il focus non si sposta

Grazie.

Ciao


albedo Profilo | Junior Member

...
>Dato che ID_CLI è definito come Text 255 il valore 1 devi recchiuderlo
>tra singoli apici:
>
>Dim cmd As New OleDb.OleDbCommand("SELECT CLIENTE FROM CLIENTI
>WHERE ID_CLI = '1'", cn) '& Griglia_Vendite.Item(11, rw).Value,
>cn)
>
>Ad ogni modo ti suggerisco di specificare tutti gli ID come numeri
>interi sui quali definire dei constraint di PRIMARY KEY (dalla
>parte 1 delle relazioni) ed un constraint FOREIGN KEY (dalla
>parte molti della relazione), non dimenticando di indicizzare
>le FK.
>
>>Grazie
>Prego.
>
>Ciao!
>--
>Lorenzo Benaglia
>Microsoft MVP - SQL Server
>http://blogs.dotnethell.it/lorenzo/
>http://italy.mvps.org

Chiedo venia, la query mi restituisce ilvalore atteso.

Ciao

albedo Profilo | Junior Member

Lo stesso codice, se posto all'interno della sub OnCellValidated funziona egregiamente, ma il mio problema rimane far sì che lo stato attivo passi ad un'altra qualora la condizione hasrows fosse giusta e per far cio' devo necessariamente gestire la pressione del tasto enter...
ma come dicevo prima, sembra che hasrows restituisca al primo invio sempre e comunque false.

ecco lo stesso codice, ma posto 'Sub OncellValidated'

sql = "select ARTICOLO, ALIQUOTA from ARTICOLI where ID_ART=?"
Dim cmd As New OleDb.OleDbCommand(sql, cn)
cmd.Parameters.AddWithValue("ID_ART", Item(3, rw).Value)
dr = cmd.ExecuteReader

If dr.HasRows And Item(11, rw).Value = 0 Then
Do While dr.Read
Item(4, rw).Value = dr.Item("ARTICOLO")
Item(12, rw).Value = dr.Item("ALIQUOTA")
Loop
dr.Close()

ElseIf dr.HasRows And Item(11, rw).Value > 0 Then
Do While dr.Read
Item(4, rw).Value = dr.Item("ARTICOLO")
Loop
cmd = New OleDb.OleDbCommand("UPDATE VENDITE SET ID_AR = " & Item(3, rw).Value & ", ARTICOLO = '" & Item(4, rw).Value & "' WHERE ID_VEN = " & Item(11, rw).Value, cn)
dr = cmd.ExecuteReader
dr.Close()
Else
MsgBox("CVCB")
dr.Close()
End If

Grazie.

Ciao
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-2023
Running on Windows Server 2008 R2 Standard, SQL Server 2012 & ASP.NET 3.5