Vb.net 需要帮助将数据写入txt文件并将其保存到此文件吗

Vb.net 需要帮助将数据写入txt文件并将其保存到此文件吗,vb.net,vb.net-2010,Vb.net,Vb.net 2010,因此,我有一个项目,我的任务是创建一个应用程序,该应用程序使用一种结构来存储有关客户帐户的以下数据:姓、名、客户号码、地址、城市、州、邮政编码、电话号码、帐户余额和上次付款日期。 应用程序应允许用户将客户帐户记录保存到文件中,按姓氏或客户编号搜索文件中的客户,并打印一份报告,列出文件中的所有客户记录 输入验证:输入新记录时,确保用户输入所有字段的数据。账户余额不接受负数 以下是我目前掌握的代码,但我遇到了一些问题: 当我输入数据时,会创建一个文件,但该文件是“空白”的,我无法理解其中的信息为什么

因此,我有一个项目,我的任务是创建一个应用程序,该应用程序使用一种结构来存储有关客户帐户的以下数据:姓、名、客户号码、地址、城市、州、邮政编码、电话号码、帐户余额和上次付款日期。 应用程序应允许用户将客户帐户记录保存到文件中,按姓氏或客户编号搜索文件中的客户,并打印一份报告,列出文件中的所有客户记录

输入验证:输入新记录时,确保用户输入所有字段的数据。账户余额不接受负数

以下是我目前掌握的代码,但我遇到了一些问题: 当我输入数据时,会创建一个文件,但该文件是“空白”的,我无法理解其中的信息为什么没有保存到该文件中

Imports System.IO

Imports System.IO.FileStream

Public Class frmCustAcct

    Dim searchFile As StreamReader

    'Declare Structure
    Structure CustomerAccounts
        Dim LastName As String           ' Last name of customer
        Dim FirstName As String         ' First name of customer
        Dim CustomerNumber As String    ' Customer number
        Dim Address As String           ' Address of customer
        Dim City As String              ' City of customer
        Dim State As String             ' State of customer
        Dim ZipCode As Integer          ' Zip code of customer
        Dim TelephoneNumber As Int64    ' Phone number of customer
        Dim AccountBalance As Double    ' Customer account balance
        Dim DateofLastPayment As String ' Date of customer's last payment
    End Structure

    Private Sub SaveToolStripMenuItem_Click(ByVal sender As Object, ByVal e As EventArgs) Handles SaveToolStripMenuItem.Click

        ' Assign Structure Variables
        Dim inputFile As StreamWriter  ' Object variable
        Dim CustomerRecord As CustomerAccounts ' Structure variable

        'Opening Files
        inputFile = File.CreateText("E:\Rio Salado\2014\CIS159 - 11480\HOMEWORK\Chapter 12\Records.txt")

        ' Assign Structure Variables
        CustomerRecord.LastName = txtLast.Text
        CustomerRecord.FirstName = txtFirst.Text
        CustomerRecord.CustomerNumber = txtCustNum.Text()
        CustomerRecord.Address = txtAdd.Text
        CustomerRecord.City = txtCity.Text
        CustomerRecord.State = txtState.Text
        CustomerRecord.ZipCode = CInt(txtZip.Text)
        CustomerRecord.TelephoneNumber = CInt(txtTeleNum.Text)
        CustomerRecord.AccountBalance = CDbl(txtAcctBal.Text)
        While CustomerRecord.AccountBalance < 0
            CustomerRecord.AccountBalance = CDbl(InputBox("Enter non-Negative Balance"))
        End While
        CustomerRecord.DateofLastPayment = CStr(CDate(txtLastPay.Text))

        'Write the data to the file. 
        inputFile.WriteLine(CustomerRecord.LastName)
        inputFile.WriteLine(CustomerRecord.FirstName)
        inputFile.WriteLine(CustomerRecord.CustomerNumber)
        inputFile.WriteLine(CustomerRecord.Address)
        inputFile.WriteLine(CustomerRecord.City)
        inputFile.WriteLine(CustomerRecord.State)
        inputFile.WriteLine(CustomerRecord.ZipCode)
        inputFile.WriteLine(CustomerRecord.TelephoneNumber)
        inputFile.WriteLine(CustomerRecord.AccountBalance)
        inputFile.WriteLine(CustomerRecord.DateofLastPayment)
        ClearFields()

    End Sub

    Private Sub SearchToolStripMenuItem_Click(ByVal sender As Object, ByVal e As EventArgs) Handles SearchToolStripMenuItem.Click

        'Open File to Search Existing
        searchFile = File.OpenText("E:\Rio Salado\2014\CIS159 - 11480\HOMEWORK\Chapter 12\Records.txt")
        Dim LastName As String
        Dim Flag As Integer
        Flag = 0
        'Retrieve the Record Name
        LastName = InputBox("Enter Last Name to Search")
        Dim CSearchRecord As CustomerAccounts
        Try
            While Not searchFile.EndOfStream
                CSearchRecord.LastName = searchFile.ReadLine()
                CSearchRecord.FirstName = searchFile.ReadLine()
                CSearchRecord.CustomerNumber = searchFile.ReadLine()
                CSearchRecord.Address = searchFile.ReadLine()
                CSearchRecord.City = searchFile.ReadLine()
                CSearchRecord.State = searchFile.ReadLine()
                CSearchRecord.ZipCode = CInt(searchFile.ReadLine())
                CSearchRecord.TelephoneNumber = CLng(searchFile.ReadLine())
                CSearchRecord.AccountBalance = CDbl(searchFile.ReadLine())
                CSearchRecord.DateofLastPayment = searchFile.ReadLine()
                'Compare Current Record With Searched
                If CSearchRecord.LastName.Equals(LastName) Then
                    Flag = 1
                    Exit While
                End If
            End While
            'If Record Found Display Appropriate Fields
            If Flag.Equals(1) Then
                txtLast.Text = CSearchRecord.LastName.ToString()
                txtFirst.Text = CSearchRecord.FirstName.ToString()
                txtCustNum.Text = CSearchRecord.CustomerNumber.ToString()
                txtAdd.Text = CSearchRecord.Address.ToString()
                txtCity.Text = CSearchRecord.City.ToString()
                txtState.Text = CSearchRecord.State.ToString()
                txtZip.Text = CSearchRecord.ZipCode.ToString()
                txtTeleNum.Text = CSearchRecord.TelephoneNumber.ToString()
                txtAcctBal.Text = CSearchRecord.AccountBalance.ToString()
                txtLastPay.Text = CSearchRecord.DateofLastPayment.ToString()
            Else
                'if not tell user no record Exists
                MessageBox.Show("No Record Found")
                ClearFields()
            End If
        Catch ex As Exception
        End Try

    End Sub

    Private Sub ReportToolStripMenuItem_Click(ByVal sender As Object, ByVal e As EventArgs) Handles ReportToolStripMenuItem.Click

        Dim report As String
        report = "Report of Customer Accounts" + vbNewLine
        ' Open a File in Read Mode
        searchFile = File.OpenText("E:\Rio Salado\2014\CIS159 - 11480\HOMEWORK\Chapter 12\Records.txt")
        Try
            'Reading the file until complete
            While Not searchFile.EndOfStream
                report += searchFile.ReadLine() + ""
                report += searchFile.ReadLine() + ""
                report += searchFile.ReadLine() + ""
                report += searchFile.ReadLine() + ""
                report += vbNewLine
            End While
        Catch ex As Exception
        End Try
        'Display Report
        MessageBox.Show(report)
    End Sub
    Private Sub ClearFields()
        txtAcctBal.clear()
        txtadd.clear()
        txtCity.Clear()
        txtFirst.Clear()
        txtLast.Clear()
        txtCustNum.clear()
        txtLastPay.Clear()
        txtState.Clear()
        txtTeleNum.clear()
        txtZip.Clear()
    End Sub

    Private Sub ExitToolStripMenuItem_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles ExitToolStripMenuItem.Click

        'Close the Form
        Me.Close()
    End Sub
End Class
Imports System.IO
导入System.IO.FileStream
公共类FRMCUSTACT
Dim searchFile作为StreamReader
'声明结构
结构客户帐户
将LastName设置为字符串“客户的姓氏”
Dim FirstName作为字符串“客户的名字”
Dim CustomerNumber作为字符串“客户编号”
Dim地址作为客户的字符串地址
Dim City作为字符串“客户城市”
Dim状态作为客户的字符串“状态”
Dim ZipCode作为客户的整数邮政编码
Dim电话号码作为客户的Int64电话号码
将账户余额调整为“双”客户账户余额
Dim DateofLastPayment作为字符串“客户上次付款的日期”
端部结构
私有子SaveToolStripMenuItem_Click(ByVal sender作为对象,ByVal e作为事件参数)处理SaveToolStripMenuItem。单击
'分配结构变量
Dim inputFile作为StreamWriter的对象变量
将CustomerRecord设置为CustomerAccounts的结构变量
'打开文件
inputFile=File.CreateText(“E:\Rio Salado\2014\CIS159-11480\Homebook\Chapter 12\Records.txt”)
'分配结构变量
CustomerRecord.LastName=txtLast.Text
CustomerRecord.FirstName=txtFirst.Text
CustomerRecord.CustomerNumber=txtCustNum.Text()
CustomerRecord.Address=txtAdd.Text
CustomerRecord.City=txtCity.Text
CustomerRecord.State=txtState.Text
CustomerRecord.ZipCode=CInt(txtZip.Text)
CustomerRecord.TelephoneNumber=CInt(txtTeleNum.Text)
CustomerRecord.AccountBalance=CDbl(txtAcctBal.Text)
而CustomerRecord.AccountBalance<0
CustomerRecord.AccountBalance=CDbl(输入框(“输入非负余额”))
结束时
CustomerRecord.DateofLastPayment=CStr(CDate(txtLastPay.Text))
'将数据写入文件。
inputFile.WriteLine(CustomerRecord.LastName)
inputFile.WriteLine(CustomerRecord.FirstName)
inputFile.WriteLine(CustomerRecord.CustomerNumber)
inputFile.WriteLine(CustomerRecord.Address)
inputFile.WriteLine(CustomerRecord.City)
inputFile.WriteLine(CustomerRecord.State)
inputFile.WriteLine(CustomerRecord.ZipCode)
inputFile.WriteLine(CustomerRecord.TelephoneNumber)
inputFile.WriteLine(CustomerRecord.AccountBalance)
inputFile.WriteLine(CustomerRecord.DateofLastPayment)
ClearFields()
端接头
私有子SearchToolStripMenuItem_Click(ByVal sender作为对象,ByVal e作为事件参数)处理SearchToolStripMenuItem。单击
'打开文件以搜索现有文件
searchFile=File.OpenText(“E:\Rio Salado\2014\CIS159-11480\combiness\Chapter 12\Records.txt”)
将LastName设置为字符串
作为整数的Dim标志
标志=0
'检索记录名
LastName=InputBox(“输入要搜索的姓氏”)
Dim CSearchRecord作为客户帐户
尝试
而不是searchFile.EndOfStream
CSearchRecord.LastName=searchFile.ReadLine()
CSearchRecord.FirstName=searchFile.ReadLine()
CSearchRecord.CustomerNumber=searchFile.ReadLine()
CSearchRecord.Address=searchFile.ReadLine()
CSearchRecord.City=searchFile.ReadLine()
CSearchRecord.State=searchFile.ReadLine()
CSearchRecord.ZipCode=CInt(searchFile.ReadLine())
CSearchRecord.TelephoneNumber=CLng(searchFile.ReadLine())
CSearchRecord.AccountBalance=CDbl(searchFile.ReadLine())
CSearchRecord.DateofLastPayment=searchFile.ReadLine()
'将当前记录与搜索的记录进行比较
如果CSearchRecord.LastName.Equals(LastName),则
标志=1
退出时
如果结束
结束时
'如果找到记录,则显示相应字段
如果Flag.等于(1),则
txtLast.Text=CSearchRecord.LastName.ToString()
txtFirst.Text=CSearchRecord.FirstName.ToString()
txtCustNum.Text=CSearchRecord.CustomerNumber.ToString()
txtAdd.Text=CSearchRecord.Address.ToString()
txtCity.Text=CSearchRecord.City.ToString()
txtState.Text=CSearchRecord.State.ToString()
Text=CSearchRecord.ZipCode.ToString()
txtTeleNum.Text=CSearchRecord.TelephoneNumber.ToString()
txtAcctBal.Text=CSearchRecord.AccountBalance.ToString()
txtLastPay.Text=CSearchRecord.DateofLastPayment.ToString()
其他的
'如果不存在,请告诉用户不存在记录
MessageBox.Show(“未找到记录”)
ClearFields()
如果结束
特例
结束尝试
端接头
专用子报告ToolStripMenuItem\u单击(ByVal