2016-04-25 3 views
-1

Ich habe einige Probleme mit einer Seite und den Code hinter ich arbeite an. finden Sie den Code:Eingabezeichenfolge im richtigen Format. VB.net - Neu zu diesem so Hilfe erforderlich

Protected Sub Page_Load(sender As Object, e As EventArgs) Handles Me.Load 

     Dim dtTable As DataTable = Nothing 
     Dim intConnectionId As Integer = 0 

     If Page.IsPostBack Then 

      ' Get user data from session 
      With HttpContext.Current 

       intConnectionId = CInt(result.Value) 
      End With 
     End If 

     ' Remove connection 
     modConnections.Delete(intConnectionId) 

     ' Clear desks attahced to connection 
     modDeskText.ClearUserDesk(intConnectionId) 

     Using sqlCommand As New SqlCommand 
      With sqlCommand 
       .CommandText = "usp_connectsdetailedlist" 
       .CommandType = CommandType.StoredProcedure 
      End With 

      Execute(sqlCommand, dtTable) 
     End Using 

     With Rep1 
      .DataSource = dtTable.DefaultView 
      .DataBind() 
     End With 

     If Not IsNothing(dtTable) Then 
      dtTable.Dispose() 
     End If 

    End Sub 

[FormatException: Input string was not in a correct format.] 
    Microsoft.VisualBasic.CompilerServices.Conversions.ParseDouble(String Value, NumberFormatInfo NumberFormat) +213 
    Microsoft.VisualBasic.CompilerServices.Conversions.ToInteger(String Value) +90 

[InvalidCastException: Conversion from string "" to type 'Integer' is not valid.] 
    Microsoft.VisualBasic.CompilerServices.Conversions.ToInteger(String Value) +238 
    frmConnects2.Page_Load(Object sender, EventArgs e) in D:\Source Code\PTS\PTS Online .NET - Copy\PTS Online .NET\PTS Online .NET stu\frmConnects2.aspx.vb:17 
    System.Web.UI.Control.OnLoad(EventArgs e) +95 
    System.Web.UI.Control.LoadRecursive() +59 
    System.Web.UI.Page.ProcessRequestMain(Boolean includeStagesBeforeAsyncPoint, Boolean includeStagesAfterAsyncPoint) +678 

Auf der Linie:

intConnectionId = CInt(result.Value) 

Ich erhalte die oben genannten Fehler. Egal, was ich mache, ich kann die Daten nicht in das Format konvertieren, das ich brauche. Ich verstehe jetzt, dass dies nichts mit dem Code auf der rechten Seite zu tun hat.

Mein Ziel ist es, die Daten aus einer Tabelle zu bekommen, in das Textfeld (<input type="text" id="result" runat="server" />) ID = "Ergebnis" und dann verwenden Sie die "ID" des in SQL ausgewählten Datensatzes, um die Verbindung zu entfernen. siehe Tabelle unten:

<ItemTemplate> 
         <tr class="<%# ReturnValuesAsColor(Eval("online"), Eval("mobile"), Eval("server_proc"))%>"> 
         <td><%# Eval("id").ToString%></td> 
         <td><%# Eval("user_id").ToString%></td> 
         <td><%# Eval("user_name").ToString%></td> 
         <td><%# Eval("workstation_name").ToString%></td> 
         <td><%# Eval("ip_address").ToString%></td> 
         <td><%# Eval("connect_date").ToString%></td> 
         <td><%# Eval("refresh_date").ToString%></td> 
         <td><%# Eval("app_ver").ToString%></td> 
         <td><%# Eval("app_date").ToString%></td> 
         <td><%# CBool(Eval("get_messages_flag")).ToString%></td> 
         <td><%# FixNumbers(Eval("message_type_flags"))%></td> 
         <td><%# Eval("online").ToString%></td> 
         <td><%# Eval("mobile").ToString%></td> 
         <td><%# Eval("group_name").ToString%></td> 
         <td><%# Eval("server_proc").ToString%></td> 
         <td><input type="submit" class="ui-button ui-widget ui-state-default ui-corner-all" value="delete connection" onclick="clearText(result); CopyId(<%# Eval("id").ToString%>);" /></td> 
         </tr> 

        </ItemTemplate> 

JS verwendet:

<script> 
       function CopyId(num) { 
        var txt = document.getElementById("<%= result.ClientID%>").value; 
        txt = num; 
        document.getElementById("<%= result.ClientID%>").value = txt; 
        } 
</script> 

Sorry, wenn ich etwas verpasst oder es gibt einen Mangel an Information. Jede Hilfe wird sehr geschätzt.

+0

Das Problem ist ziemlich klar "result.Value" ist keine Ganzzahl. Wo wird das bevölkert? –

+0

das Original kommt von SQL Server als eine Zahl 6 Ziffern lang, es ist die Spalte "ID" in der Tabelle, wenn ich Ihre Frage richtig verstehe. Ich kann das Ergebnis sehen. Wert ist keine Ganzzahl, aber ich kann nicht scheinen, um es zu einem zu verdecken .. – BarryWhite

+0

Sorry die Frage war nicht perfekt, aber warum der Downvote? Klar gesagt, ich war neu, lies die Fragen nach Regeln und stellte sicher, dass ich alles hineinlegte. Bitte erklären Sie den Wermutstropfen? – BarryWhite

Antwort

0

Sie haben uns die Definition für result oder result.Value nicht gezeigt, also ist dies eine ermittelte Schätzung.

Try-Tests für einen Nullwert in der Datenbank:

If IsDbNull(result.Value) Then 
    intConnectionId = 0 
Else 
    intConnectionId = CInt(result.Value) 
End If 
+0

getestet, wie Sie gesagt haben, wie ich denke, bekommen "". "" Für result.value. Sieht aus, als würde das Problem auftreten, bevor dies die Werte sind, die ich erfassen möchte. Ich muss immer noch den letzten Teil von dem, was Sie gefragt haben, kommentieren, da es sonst mit den gleichen Fehlern bombardiert Von result.ClientID bekomme ich "CphMain_result", die korrekt ist, sollte aber eine 6-stellige Zahl sein, damit ich bin Vielleicht fehlt irgendwo eine Konvertierung? – BarryWhite

0

in VB benötigen Sie eine Variable zu überprüfen, um sicherzustellen, dass es nicht leer ist, null, & nichts und enthält keine nicht numerischen Zeichen. Ich würde auch CTYPE und Trim verwenden. Die Konvertierung funktioniert nur, wenn die Zeichenfolge einen numerischen Wert enthält. Wenn beim Auffüllen der Zeichenfolge ein Problem auftritt, müssen Sie den Code überprüfen, der ausgefüllt wurde. Ich fürchte, ich kenne JS nicht.

+0

yep danke, ich dachte, ich würde Bananen! Ich bekam einen Wert wie von anderen vorgeschlagen. Sobald ich aufnahm, was ich brauchte, fing es an zu arbeiten. Danke für den Beitrag von allen. – BarryWhite

+0

nein * Wert entschuldigt – BarryWhite

Verwandte Themen