2017-01-29 5 views
-1

Ich bin in der Lage, erfolgreich zu generieren eine ID auf Formular Last zu beheben, aber wenn ich das Formular verlassen und versuchen, es zu laden wieder die ID erzeugt die gleiche ist wie die vorherigeim nicht in der Lage zu meinem Auto-ID-Generator

Try 
     Dim num As Integer 
     conn.ConnectionString = String.Format("server=localhost;user id=root;password=root;database=rishab") 
     conn.Open() 
     sqlcommand = New MySqlCommand("select max(ID) from inc", conn) 
     sqlcommand.ExecuteNonQuery() 

     If IsDBNull(sqlcommand.ExecuteScalar) Then 
      num = 1 
      id5.Text = num 
     Else 
      num = sqlcommand.ExecuteScalar + 1 
      id5.Text = num 
     End If 
     sqlcommand.Dispose() 
     conn.Close() 
     conn.Dispose() 

    Catch ex As Exception 

    End Try 


Private Sub Form2_Load(sender As Object, e As EventArgs) Handles MyBase.Load 

    autogenerate() 

End Sub 
+0

Haben Sie eine Frage an uns? –

+0

Was ist der Rückgabetyp Ihrer Funktion autogenerate –

+1

Fügen Sie etwas in die Tabelle ein, um die ID zu erhöhen? – Bugs

Antwort

-1

Wenn ich das richtig verstehe, müssen Sie Ihre num Ganzzahl als öffentlich deklarieren. Es wird dann den letzten Wert enthalten und wenn Sie das Formular erneut laden, wird es vom letzten Wert an gerechnet. Tun Sie dies, bevor Ihr Formularkurs startet, oder ich werde das persönlich in einem Modul mit all meinen anderen öffentlichen Strings, Booleans und Ganzzahlen hinzufügen.

''In a module add - 
Public num As Integer 
''Do not add a value here as in Public num as Integer = 0 as it will give the value 0 every time you make a call to it. 
''Also remember to handle the value throughout your app, change back to 0 or leave it to the last value etc. 
+0

ich versuchte es zu ändern, aber nutzlos – Chhetryrishv