vb.net - 带VB.NET的ASP.NET-Winforms到Web-NullReferenceException字符串拆分/字符串生成器错误

标签 vb.net error-handling stringbuilder string-split winforms-to-web

背景:我有一个winForm应用程序,该应用程序根据提供的信息在数据库中注册用户,自动生成随 secret 码和用户名,并通过电子邮件向用户发送链接,以根据所选的营销公司获取应用程序。

问题:

  • 当用户单击“发送邀请”并在除调试中的bundles列表框之外的所有字段上输入了数据时,将抛出NullReferenceException错误,突出显示以下行:Dim MCShort As String = Trim(splitMC(0))

  • 我该如何解决这个问题

    这是该网络应用程序的屏幕截图:

    这是default.asx.vb的Send_Button_Click方法的代码:
    Private Sub Send_Button_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Send_Button.Click
    
        'TODO Add code to validate that all selections that are reaquired are met.
        'ccemail and the additional message are not required
        Dim firstname As String = txtFirstName.Text
        Dim lastname As String = txtLastName.Text
        Dim ccEmail As String = txtccEmail.Text
    
        Dim sb As New StringBuilder
    
        sb.AppendLine("<?xml version=""1.0"" encoding=""utf-8""?>")
        sb.AppendLine("<root>")
        sb.AppendLine("<MarketingCompany>")
        sb.AppendLine("<MarketingCompanyName>")
    
        ''Get Marketing Company Short Name
        Dim splitMC As String() = Split(marketingCo.SelectedItem, "|")
        Dim MCShort As String = Trim(splitMC(0))
        sb.AppendLine(String.Format("<MCNAme>{0}</MCNAme>", MCShort))
    
    
        'sb.AppendLine(String.Format("<MCNAme>{0}</MCNAme>", My.Settings.MarketingCompanyShortName))
    
        sb.AppendLine(String.Format("<ccEmail>{0}</ccEmail>", txtccEmail.Text))
        sb.AppendLine(String.Format("<emailMessage>{0}</emailMessage>", txtMessage.Text))
        sb.AppendLine(String.Format("<MarketerName>{0}</MarketerName>", txtMarketerName.Text))
        sb.AppendLine("<agent>")
        sb.AppendLine(String.Format("<FirstName>{0}</FirstName>", txtFirstName.Text))
        sb.AppendLine(String.Format("<LastName>{0}</LastName>", txtLastName.Text))
        sb.AppendLine(String.Format("<Email>{0}</Email>", txtEmail.Text))
        sb.AppendLine("<CRMGuid>123456</CRMGuid>")
    
        Dim spltBundles() As String
    
        For Each item In bundles.Items
            If Trim(item) <> "" Then
                spltBundles = Split(item, "|")
                sb.AppendLine("<ContractingOpportunity>")
                sb.AppendLine(String.Format("<Carrier>{0}</Carrier>", Trim(spltBundles(0))))
                sb.AppendLine(String.Format("<ContractingOpportunityName>{0}</ContractingOpportunityName>", Trim(spltBundles(1))))
                sb.AppendLine("</ContractingOpportunity>")
            End If
        Next
    
        sb.AppendLine("</agent>")
        sb.AppendLine("</MarketingCompanyName>")
        sb.AppendLine(" </MarketingCompany>")
        sb.AppendLine(" </root>")
        Dim xmlStr = sb.ToString
    
    
        Dim int1 As Boolean = proxy.AddContractOpportunity(xmlStr.ToString, "test", "test")
    
        MsgBox("aComp Invitation Sent! :)")
    
    
    End Sub
    

    最佳答案

    对于第一个问题,可以对lbCarriers使用OnSelectedIndexChanged事件。

    关于提交时缺少数据的问题,应在提交的页面上使用某种形式的验证。 ASP.Net包括a set of validation controls,使工作变得简单。在最简单的级别上,您可以将表单控件设置为必需的,这将允许表单提示用户在触发代码隐藏事件之前填写所有必填字段。

    关于vb.net - 带VB.NET的ASP.NET-Winforms到Web-NullReferenceException字符串拆分/字符串生成器错误,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/5625723/

    相关文章:

    java - 使用 switch 语句运行方法时出现 StackOverflowError

    asp.net - LinqToTwitter BeginAuthorizationAsync 抛出 NullReferenceException

    VB.NET: "AddHandler"通过将 Handler 函数指定为变量

    vb.net - "Option Strict On disallows implicit conversions"执行不一致

    android - Android Studio : java.lang.IllegalArgumentException: Given String is empty or null

    sql - sql函数调用中的VBA错误转义错误陷阱

    sql - 数据库中的日期格式在 vb.net 中获取错误的日期

    swift - “ fatal error :在展开可选值时意外发现nil”是什么意思?

    java - 根据长度拆分并添加字符串

    java - StringBuilder 适合复合结构(如 Map<String、List<String>>)的大小