Buon pomeriggio a tutti,
premetto che sono abbastanza nuovo di questo mondo e sto studiando piano piano per mettermi al passo nell'ambito della programmazione, per cui mi scuso in anticipo se la domanda che vi farò può essere molto banale.
Ho un form dove carico un excel per aggiornare un tabella sql, vi riporto qui di seguito il codice:
Imports System.Data.SqlClient
Imports System.Data.OleDb
Imports System.Reflection
Imports System.IO
Imports Excel = Microsoft.Office.Interop.Excel
Public Class frmAggAcquisto
Dim con As New SqlConnection("Data Source=SRV-APP01;Initial Catalog=UFFICIALE;Integrated Security=False;Persist Security Info=False;User ID=sa;Password=password;Connect Timeout=120;")
Dim cmd As New SqlCommand
Dim con2 As New OleDbConnection("Provider=Microsoft.Ace.OLEDB.12.0; Data Source=\\Srv-app01\pcm\Listini di Acquisto\LISTINO_MASTER.xlsx; Extended Properties=Excel 8.0;")
Private Sub frmAggAcquisto_Load(sender As System.Object, e As System.EventArgs) Handles MyBase.Load
con2.Open()
Dim da As New OleDbDataAdapter("Select * from [LISTINO_MASTER$]", con2)
Dim dt As New DataTable
da.Fill(dt)
dtgAggAcquisto.DataSource = dt
DoubleBuffered(dtgAggAcquisto, True)
End Sub
Public Shadows Sub DoubleBuffered(dtgAggAcquisto As DataGridView, setting As Boolean)
Dim dtgAggAcquistoTipe = dtgAggAcquisto.GetType()
Dim pi As PropertyInfo = dtgAggAcquistoTipe.GetProperty("DoubleBuffered", BindingFlags.Instance Or BindingFlags.NonPublic)
pi.SetValue(dtgAggAcquisto, setting, Nothing)
End Sub
Private Sub btnAggiorna_Click(sender As System.Object, e As System.EventArgs) Handles btnAggiorna.Click
For i As Integer = 0 To dtgAggAcquisto.Rows.Count - 1
cmd = con.CreateCommand()
cmd.CommandType = CommandType.Text
cmd.CommandText = "UPDATE LI10_LISTARTIC SET LI10_PREZZO = '" & dtgAggAcquisto.Rows(i).Cells(1).Value & "' WHERE LI10_CODART_MG66 = '" & dtgAggAcquisto.Rows(i).Cells(0).FormattedValue & "' AND LI10_FLGVENDACQ = '1' AND LI10_NUMLIST = '1'"
con.Open()
cmd.ExecuteNonQuery()
con.Close()
Next
MessageBox.Show("Aggiornamento Completato.", "Pricing - Costing Management")
End Sub
End Class
Nel momento in cui vado ad eseguire il comando di aggiornamento, mi riporta sempre l'errore che vi allego.
Penso che l'errore sia dovuto alla prima colonna del codice articolo, dove nella tabella sql è settato come char(25) e non posso cambiarlo in quanto si tratta di una tabella predefinita del nostro ERP.
Ho provato anche a convertire il valore di partenza ma senza successo, probabilmente sto sbagliando qualcosa.
Grazie mille in anticipo a tutti per l'aiuto
Allegati: