2013-02-21 4 views
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 
+0

проверки, если это исполняемый файл работает в два раза (в диспетчере задач) – Raptor

+0

нет .. проблема в коде .. файл F: \ копия back up \ system \ HRM 2-5-2013 \ HRM \ HRM \ lanbased.txt используется дважды, как я могу использовать этот файл дважды .. ?? –

ответ

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()) 
+0

теперь я получил эту ошибку: ((Невозможно подключиться к любому из указанных хостов MySQL. –

+0

@RodmarPusung, какая ошибка .. любая деталь? – Arpit

+0

tnx lots :)) проблема решить !!! –

1

Похоже, что вам нужно, чтобы закрыть StreamReader перед открытием новой формы:

objReader.Close() 

Это освободит файл.

+0

SysDragon Я использовал ваш код и все еще имею ту же проблему: (( –

+0

tnx lots :)) проблема решить !!! –

+0

Добро пожаловать ... – SysDragon