Carissimi, buona sera seguo sempre con grande interesse tutti quanti e mi complimento con Voi Tutti. Mi sto avventurando nel mondo VB.NET uso la versione Visualstudio 2022 e sto creando un semplice database con un campo nella fattispecie una textbox chiamata progressivo dove viene fuori una cosa del genere "Prot." & "1" & "/" & Year(Now)". Tramite la Private Function GenID() As String txtprogressivo.Text = NewID e fin quì tutto OK (funziona alla perfezione) se la tabella contiene almeno un record. Nel caso invece la tabella sia completamente vuota dovrei essere io ad assegnare txtprogressivo.Text ="Prot." & "1" & "/" & Year(Now) solo per il primo record.
Il problema come scrivevo è che se il db e vuoto non funziona e mi viene fuori il messaggio " Cast non valido dal tipo 'DBNull' al tipo integer.
Riassumendo quindi mi serve se la tabella protocollo sia vuota che value sia uguale a 1.
Qualcuno può aiutarmi?
Grazie in anticipo.
Il problema come scrivevo è che se il db e vuoto non funziona e mi viene fuori il messaggio " Cast non valido dal tipo 'DBNull' al tipo integer.
Riassumendo quindi mi serve se la tabella protocollo sia vuota che value sia uguale a 1.
Qualcuno può aiutarmi?
Grazie in anticipo.
Visual Basic:
Private Sub Button1_Click(sender As Object, e As EventArgs) Handles Button1.Click
btnsalva.Enabled = True
'btnupdate.Enabled = True
'btnelimina.Enabled = True
Dim NewID As String = ""
Try
NewID = GenID()
Catch ex As Exception
MessageBox.Show(ex.Message)
Return
End Try
If NewID = 0 Then
txtprogressivo.Text = "Prot." & "1" & "/" & Year(Now)
Else
txtprogressivo.Text = NewID
End If
End Sub
Private ConStr As String = "Provider=Microsoft.ACE.OLEDB.12.0;Data Source=C:\GESTPRO-WIN\Data\DB.accdb"
Private Function GenID() As String
Dim value As Integer
Dim StrValue As String
Using con As New OleDbConnection(ConStr),
com = New OleDbCommand("SELECT Max(Id) FROM protocollo", con)
con.Open()
value = CInt(com.ExecuteScalar)
End Using
value += 1
If value >= 1 Then
StrValue = "Prot." & value & "/" & Year(Now)
Else
strvalue = 0
End If
Return StrValue
End Function