2014-05-23 2 views
0

에서 개체의 인스턴스로 설정되지 않았습니다 : 내 데이터베이스에있는 파일을 업로드하기 위해 노력하고있어 때개체 참조가 나는 오류를 얻고있다 vb.net

Object reference not set to an instance of an object.

이 나타납니다. 이 여기

내 코드입니다 내 학교에 전달하기 위해 개발하고 프로젝트 (최종 시험)입니다 :

Try 
     OpenFileDialog.Filter = "All files (*.*)|*.*| JPEG FILES(*.jpg)|*.jpg| RAW FILES (*.raw)|*.raw| WORD FILES (*.doc)|*.doc| WORD FILES (*.docx)|*.docx| EXCEL FILES (*.xls)|*.xls| EXCEL Files (*.xlsx)|*.xlsx| PNG Files (*.png)|*.png| GIF FILES (*.gif)|*.gif| PDF FILES (*.pdf)|*.pdf| RAR Files (*.rar)|*.rar| AUTOCAD FILES (*.dwg)|*.dwg| EXE FILES (*.exe)|*.exe| ZIP FILES (*.zip)|*.zip| TXT FILES (*.txt)|*.txt" 
     OpenFileDialog.FilterIndex = 1 
     OpenFileDialog.Title = "Open File" 
     OpenFileDialog.Multiselect = True 

     obj_openfile = OpenFileDialog 

     'Show The Dialog 
     If obj_openfile.ShowDialog = Windows.Forms.DialogResult.OK Then 
      in_file = obj_openfile.FileName.ToString 
      Dim fich As String = obj_openfile.SafeFileName 
      obj_openfile.Dispose() 
      obj_openfile = Nothing 
      con.Close() 
      con.ConnectionString = "Data Source=IZZ;Initial Catalog=regteste;Integrated Security=True" 
      con.Open() 

      'Converter to bytesream 
      Dim fs As FileStream 
      fs = New FileStream(in_file, FileMode.Open, FileAccess.Read) 
      Dim docByte As Byte() = New Byte(fs.Length - 1) {} 
      fs.Read(docByte, 0, System.Convert.ToInt32(fs.Length)) 
      fs.Close() 

      Dim filebyte As Byte() = Nothing 
      filebyte = System.IO.File.ReadAllBytes(obj_openfile.FileName) 
      cmd = New SqlCommand("INSERT INTO Filestelefones_pt (Name,Data) VALUES (@Name, @Data)", con) 
      cmd.Parameters.AddWithValue("@Name", fich) 
      cmd.Parameters.AddWithValue("@Data", docByte) 
      cmd.ExecuteNonQuery() 
      con.Close() 
      con.Open() 

      txtabrir.Text = in_file 

     End If 
    Catch ex As Exception 
     MsgBox(ex.Message) 
    End Try 
End Sub 
+0

언어 태그를 추가해야합니다. – csmckelvey

+0

어디에서 실패했는지 아십니까? 오류에 대해 더 자세히 설명해 주시겠습니까? –

+2

[NullReferenceException은 무엇이며 어떻게 수정합니까?] 가능한 중복 (http://stackoverflow.com/questions/4660142/what-is-a-nullreferenceexception-and-how-do-i-fix-it) 시작, 오류/오류를 확인하는 시도/제거 잡으려고 – Plutonix

답변

0

이러한 문제를 찾는 가장 쉬운 방법은 코드에 중단 점을 넣어하는 것입니다, F5를 히트 디버거의 행을 단계별로 실행하십시오. 또한 응답을 기다리는 것보다 빠릅니다.

코드의 가장 큰 원인은 obj_openfile입니다. 당신이 If에 코드를 보면

, 당신이 다음 코드 줄 알 수 있습니다 :이에서

Dim filebyte As Byte() = Nothing 
filebyte = System.IO.File.ReadAllBytes(obj_openfile.FileName) 

: 아래로 그리고 조금 더

obj_openfile.Dispose() 
obj_openfile = Nothing 

을, 당신이이 지점에서 이미 obj_openfileNothing (null)로 설정 했으므로 null 객체의 속성을 읽으려고 할 때 오류가 발생하는 경우가 가장 많습니다.

+0

많은 도움을 주셔서 감사합니다. 그 자리에 있었어. :) – user3669457

관련 문제