2011-10-16 2 views
4

VB.NET 2005를 사용하여 SQL Server Express에 로컬로 연결하려고합니다. 연결 문자열을 app.config 파일에서 직접 가져 왔습니다. 실행하면 오류가없고 연결 상태가 열려 있지만 명령이 처리되지 않습니다.SQL Server Express에 연결하는 VB.NET 2005, 오류는 없지만 cmds가 실행되지 않습니다.

Imports System.Data 
Imports System.Data.SqlClient 

Public Class frmAddMovie 
    Private Sub Button2_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button2.Click 
    Me.Close() 
End Sub 

Private Sub btnAdd_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles btnAdd.Click  
    Dim conString As String = "Data Source=.\SQLEXPRESS;AttachDbFilename=|DataDirectory|\Movies.mdf;Integrated Security=True;User Instance=True;" 
    Dim con As New SqlConnection(conString) 
    Dim cmd As New SqlCommand("Insert Into tblMovies(fldTitle, fldDirector, fldRating)Values('Solar Babies', 'PG', 'Rick Flair')", con) 

    Using con 
     con.Open() 
     cmd.ExecuteNonQuery() 
    End Using 

    If MessageBox.Show("Movie Added") = Windows.Forms.DialogResult.OK Then 
     Me.Close() 
    End If 

End Sub 
End Class 
+2

** 100 % 확실 ** 명령이 실행되지 않습니다 ?? 첨부 된 MDF를 사용하면 틀린 데이터베이스를 보았을 것입니다 .... 이것을 시도하십시오 : 코드에서 'Me.Close()'다음에 중단 점을 설정하십시오; 그 중단 점에 도달하면 데이터베이스를 검사하십시오. 올바른 데이터베이스 파일을보고 있다면 변경 사항이있을 것입니다. –

+0

아마도 그다지 중요하지는 않지만 삽입물은 "fldDirector"열에 "PG"를 쓰고 "fldRating"열에 "Rick Flair"라고 씁니다. 이것이 문제의 원인 일 가능성이 적습니다. – Ortund

+0

테이블 이름과 열 이름이 잘못 되었습니까? 그것의 이름에'tbl'을 가질 필요가없는 그것의 테이블. – Jeremy

답변

1

가상 컴퓨터에서 실행하고 있습니까?

스노우 레오파드에서 실행되며 Mac에서 때때로 VS2010에 액세스해야합니다. VM에서 비슷한 문제가 있지만 동일한 코드를 사용하면 완벽하게 실행됩니다.

저는 이것이 문제인지는 확실하지 않지만 해결책은 Windows 기반 PC에서 시도하는 것입니다. 작동한다면 적어도 가상 시스템과 관련이 있음을 알 수 있습니다.

+0

예, Windows 기반 컴퓨터에 복사했을 때 잘 돌아갔습니다. Mac OS X에서 Parallels를 사용하고 있었지만 Google에서 아무 것도 찾을 수 없어 관련성이 있다고 생각하지 않았습니다. 감사! –

0

인 AttachDBFilename은 = | DataDirectory를가 빈/디버그 폴더에 기본적 당신의 로 프로젝트를 실행할 때마다, 그래서 당신은 삽입 한하는 것은 덮어 쓰기됩니다 recopyed된다.

해결책은 간단하다 : 1 - 주요 데이터

또는

2에 직접 연결 - 프로젝트 Movies.mdf을 선택에서 '복사하지 마십시오'로 출력 디렉터리에 F4 설정 복사를 명중