2

別のプロセスによって使用されているため、プロセスはファイル'F:\ copy back up \ system \ HRM 2-5-2013 \ HRM \ HRM\lanbased.txt'にアクセスできません。これはサブメインの私のコードです

Public localhost As String
Public username As String
Public port As String
Public database As String
Public conn As New MySqlConnection
Public NAME1 As String = "F:\copy back up\system\HRM 2-5-2013\HRM\HRM\lanbased.txt"

Public Sub main()
    Dim frm As New Form1
    Dim frm1 As New create

    If System.IO.File.Exists(NAME1) = True Then
        Try
            Dim objReader As New System.IO.StreamReader(NAME1)

            localhost = objReader.ReadLine() & vbNewLine
            username = objReader.ReadLine() & vbNewLine
            port = objReader.ReadLine() & vbNewLine
            database = objReader.ReadLine() & vbNewLine
            conn.ConnectionString = "server=" & Trim(localhost) & ";user id=" & Trim(username) & "; password=" & Trim(port) & "; database=" & Trim(database) & ""
            conn.Open()


            Application.Run(New Form1())
        Catch ex As Exception
            MsgBox("Unable  to connect to database", vbCritical)

            Application.Run(New create())
        End Try
    End If
    Exit Sub
End Sub

これが私のフォーム作成のコードです。別のプロセスで使用されているときにファイルにアクセスするにはどうすればよいですか?

Private Sub Button1_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button1.Click
    Dim FILE_NAME As String = "F:\copy back up\system\HRM 2-5-2013\HRM\HRM\lanbased.txt"

    If TextBox1.Text = Nothing Or TextBox2.Text = Nothing Or TextBox3.Text = Nothing Or TextBox4.Text = Nothing Then
        MsgBox("fill up mo pa ngot")

    ElseIf System.IO.File.Exists(FILE_NAME) = True Then

        Dim objWriter As New System.IO.StreamWriter(FILE_NAME)


        objWriter.Write(TextBox1.Text + vbCrLf)
        objWriter.Write(TextBox2.Text + vbCrLf)
        objWriter.Write(TextBox3.Text + vbCrLf)
        objWriter.Write(TextBox4.Text + vbCrLf)
        objWriter.Close()

        TextBox1.Clear()
        TextBox2.Clear()
        TextBox3.Clear()
        TextBox4.Clear()

    ElseIf conn.State = True Then

        MsgBox("maka connect naka")

    End If
End Sub
4

2 に答える 2

2

まず、ここで読むためにファイルを開きます:

Dim objReader As New System.IO.StreamReader(NAME1)    //1st open

次に、form1を呼び出します。Application.Run(New Form1())

そのフォームであなたは持っています: Dim objWriter As New System.IO.StreamWriter(FILE_NAME) //2nd open

you didn't close your fileただし、2回目に開くことができないように待ってください。

before calling create form 1 したがって、次のようにファイルを閉じる必要がありますobjReader.close()

        conn.Open()
        objReader.close()    <----- this one
        Application.Run(New Form1())
于 2013-02-21T08:45:57.083 に答える
1

新しいフォームを開く前に、streamReader を閉じる必要があるようです。

objReader.Close()

これでファイルが解放されます。

于 2013-02-21T08:38:28.423 に答える