Visualizzazione dei risultati da 1 a 2 su 2
  1. #1
    Utente di HTML.it
    Registrato dal
    May 2007
    Messaggi
    18

    [VB.NET]Invio al DB errato

    Salve a tutti, ho un bizzarro problema con un programma in Visual basic che sto facendo....
    in pratica il programma in questione dopo aver fatto dei calcoli tramite if scrive sul database i risultati, che però sono sbagliati.
    Il problema è che i risultati vengono anche scritti a video sulla matrice, e sono giusti, sembra quindi che vengano cambiati nel momento in cui vengono scritti nel database...
    Avviso che il codice è lunghetto per via degli IF (che non vengono saltati, ho gia provato a mettere dei goto per saltare direttamente alla stringa sql ma non cambia nulla) ho gia eliminato moltissimi casi (il codice reale è lunghissimo :P) speroc hq quaalcuno riescca a darmi una mano ....
    Ora, io quando creo la variabile codtile di quella cella la memorizzo anche sulla struttura maptab che è un datagridview (maptab) il problema come dicevo è che quello che è scritto sulla datagrid (che è coretto) non corrisponde in modo assoluto a quello che è scritto sul database.
    Ci sono delle analogie sugli errori, in pratica questi sono tutti bordi (il programma calcola i bordi di una mappa) ad esempio l'angolo in basso a destra viene calcolato giusto, mentre la bordatura superiore viene invertita con quella sinistra e viceversa, le celle di sfondo vengono tutte scritte giuste (quelle all'inizio dell'if, quindi quando rikiamo creacodice con parametri M,S o V) poi scambia il bordo inferiore con quello destro e viceversa, e anche due angoli...... potrei mettermi in fase di lettura a invertirli... ma non capisco perchè debba scrivere nel batabase un dato diverso da quello che mi da due secondi prima di scriverlo :|

    aggiungo il codice nel post successivo..
    (ho tolto una buona parte di blocco IF perchè non stava nel post, cmq non credo che l'errore stia li, in quanto nella datagrid scrive il valore corretto, e per essere sicuro che non entri in altri if avevo provato a mettere dei goto che puntavano alla quesr, con nessun mutamento del risultato...)

    Grazie dell'attenzione ....

  2. #2
    Utente di HTML.it
    Registrato dal
    May 2007
    Messaggi
    18
    codice:
        Private Sub CreaLaTabellaInRemotoToolStripMenuItem1_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles CreaLaTabellaInRemotoToolStripMenuItem1.Click
            Call create_table()
        End Sub
    
        Private Sub SaToolStripMenuItem_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles SaToolStripMenuItem.Click
            Dim riga As Integer
            Dim col As Integer
            Dim sql As String
            Dim codtile As String
            Dim temp As ADODB.Field
            Dim idatt As Integer
            Dim indice As Integer
            riga = 0
            col = 1
            indice = 0
            sql = "SELECT MAX(IDmappa) as max FROM " & tab
            rs.Open(sql, cn)
            temp = rs("max")
            idatt = temp.Value
            'idatt = 0
            idatt = idatt + 1
            sql = "insert into " & tab & "(IDmappa) values(" & idatt & ");"
            cn.Execute(sql)
            While col < 31
                riga = 0
                While riga < 30
                    If maptab(col, riga).Style.BackColor = Color.Empty Then
                        codtile = Crea_codice("M")
                        If col > 1 And riga > 0 And col < 30 And riga < 29 Then
                            If maptab(col - 1, riga - 1).Style.BackColor = Color.Gold And maptab(col, riga - 1).Style.BackColor = Color.Gold And maptab(col + 1, riga - 1).Style.BackColor = Color.Gold And maptab(col - 1, riga).Style.BackColor = Color.Gold And maptab(col + 1, riga).Style.BackColor = Color.Gold And maptab(col - 1, riga + 1).Style.BackColor = Color.Gold And maptab(col, riga + 1).Style.BackColor = Color.Gold And maptab(col + 1, riga + 1).Style.BackColor = Color.Gold Then
                                codtile = codtile & "£" & Crea_codice("S_ABCDEFGH")
                                maptab(col, riga).Value = maptab(col, riga).Value & "S_ABCDEFGH  "
                                maptab(col, riga).Value = maptab(col, riga).Value & codtile & "  "
                            ElseIf maptab(col - 1, riga - 1).Style.BackColor = Color.Gold And maptab(col, riga - 1).Style.BackColor = Color.Gold And maptab(col + 1, riga - 1).Style.BackColor = Color.Gold And maptab(col - 1, riga).Style.BackColor = Color.Gold And maptab(col + 1, riga).Style.BackColor = Color.Gold Then
                                codtile = codtile & "£" & Crea_codice("S_ABCDEGH")
                                maptab(col, riga).Value = maptab(col, riga).Value & "S_ABCDEGH  "
                                maptab(col, riga).Value = maptab(col, riga).Value & codtile & "  "
                            ElseIf maptab(col - 1, riga).Style.BackColor = Color.Gold And maptab(col + 1, riga).Style.BackColor = Color.Gold And maptab(col - 1, riga + 1).Style.BackColor = Color.Gold And maptab(col, riga + 1).Style.BackColor = Color.Gold And maptab(col + 1, riga + 1).Style.BackColor = Color.Gold Then
                                codtile = codtile & "£" & Crea_codice("S_ACDEFGH")
                                maptab(col, riga).Value = maptab(col, riga).Value & "S_ACDEFGH  "
                                maptab(col, riga).Value = maptab(col, riga).Value & codtile & "  "
                            ElseIf maptab(col, riga - 1).Style.BackColor = Color.Gold And maptab(col + 1, riga - 1).Style.BackColor = Color.Gold And maptab(col + 1, riga).Style.BackColor = Color.Gold And maptab(col, riga + 1).Style.BackColor = Color.Gold And maptab(col + 1, riga + 1).Style.BackColor = Color.Gold Then
                                codtile = codtile & "£" & Crea_codice("S_ABCDEFG")
                                maptab(col, riga).Value = maptab(col, riga).Value & "S_ABCDEFG  "
                                maptab(col, riga).Value = maptab(col, riga).Value & codtile & "  "
                            ElseIf maptab(col - 1, riga - 1).Style.BackColor = Color.Gold And maptab(col, riga - 1).Style.BackColor = Color.Gold And maptab(col - 1, riga).Style.BackColor = Color.Gold And maptab(col - 1, riga + 1).Style.BackColor = Color.Gold And maptab(col, riga + 1).Style.BackColor = Color.Gold Then
                                codtile = codtile & "£" & Crea_codice("S_ABCEFGH")
                                maptab(col, riga).Value = maptab(col, riga).Value & "S_ABCEFGH  "
                                maptab(col, riga).Value = maptab(col, riga).Value & codtile & "  "
                            ElseIf maptab(col - 1, riga).Style.BackColor = Color.Gold And maptab(col - 1, riga + 1).Style.BackColor = Color.Gold And maptab(col, riga + 1).Style.BackColor = Color.Gold Then
                                codtile = codtile & "£" & Crea_codice("S_AEFGH")
                                maptab(col, riga).Value = maptab(col, riga).Value & "S_AEFGH  "
                                maptab(col, riga).Value = maptab(col, riga).Value & codtile & "  "
                                If maptab(col + 1, riga - 1).Style.BackColor = Color.Gold Then
                                    codtile = codtile & "£" & Crea_codice("S_C")
                                    maptab(col, riga).Value = maptab(col, riga).Value & "S_C  "
                                    maptab(col, riga).Value = maptab(col, riga).Value & codtile & "  "
                                End If
    
                            [... Blocco di IF ...]
    
                        End If
                    ElseIf maptab(col, riga).Style.BackColor = Color.Gold Then
                        codtile = Crea_codice("S")
                    ElseIf maptab(col, riga).Style.BackColor = Color.Green Then
                        codtile = Crea_codice("P")
                    ElseIf maptab(col, riga).Style.BackColor = Color.Gray Then
                        codtile = Crea_codice("V")
                    End If
                    'gestione dei bordi...
                    If maptab(col, riga).Value = "A" Then
                        'se vi sono alberi nella cella
                        codtile = codtile & "£" & Crea_codice("A")
                    End If
                    'test.Text = test.Text & "   cella N°:  " & indice & "   con valore: " & codtile
                    sql = "UPDATE `" & tab & "` SET `cell" & indice & "` = '" & codtile & "' WHERE `IDmappa` =" & idatt & ";"
                    cn.Execute(sql)
                    riga = riga + 1
                    indice = indice + 1
                    codtile = ""
                End While
                col = col + 1
            End While
            rs.Close()
    
        End Sub

Permessi di invio

  • Non puoi inserire discussioni
  • Non puoi inserire repliche
  • Non puoi inserire allegati
  • Non puoi modificare i tuoi messaggi
  •  
Powered by vBulletin® Version 4.2.1
Copyright © 2025 vBulletin Solutions, Inc. All rights reserved.