유지 관리 소프트웨어를 상속 받았습니다. 이전 버전에서는 Vista의 Windows 버전과 호환되지 않는 타사 Datagridview 대체품을 사용했습니다. Datagridviews를 넣으려고 시도 할 때 데이터베이스에 연결하는 데 문제가 발생했습니다.SQL 연결 열기
원본 소프트웨어의 연결 및 SELECT 기능을 사용하기 위해 작은 프로그램을 만들려고 노력하고 있습니다. 그래서 내가하고있는 일을 이해할 수 있고 원본 소프트웨어를 사용하여 테스트를 진행하는 과정을 밟지 않아도됩니다. 포인트.
Private Shared Function GetData(ByVal sqlCommand As String) As DataTable
Dim table As New DataTable()
Dim connectionString As String = "Data Source=.\SQLExpress;Integrated Security=true;" _
& "AttachDbFilename=C:blah\blah\blah.mdf;User Instance=true;"
Using con = New SqlConnection(connectionString)
Using command = New SqlCommand(sqlCommand, con)
Using da = New SqlDataAdapter(command)
da.Fill(table)
End Using
End Using
End Using
Return table
End Function
내 SQL 명령은 간단한 "설정에서 선택 *"이고 나머지 프로그램은 폼이로드, 수입 및 DataGridView에 서식입니다. 나는 이것이 SQL 부분에 영향을 미치지 않는다고 여기에 포함하는 것이 번거롭다 고 생각한다.
이렇게하면 닫힌 연결로 간주됩니다.
! [연결 속성] http://i.imgur.com/b5V3Qy5.png
이 연결 문제를 진단 할 수있는 내 SQLExpress입니다의 스크린 샷이다.
! [SQL 속성] http://i.imgur.com/bakBq5D.png
나는 회색으로 컴퓨터 이름을 흐리게했지만, 나는 분홍색의 다른 컴퓨터 이름이 있었다는 것을 통보했다. 나는이 데이터베이스가 원래 다른 컴퓨터에서 만들어지고 복사되고 붙여 넣어 진 것이 아닌 다른 의미가 무엇인지 모릅니다.
"Data Source=.\SQLExpress;AttachDbFilename=C:\blah\blah\blah.mdf;Trust_Connection=Yes;"
나는 또한 시도 :
마지막이 원래의 소프트웨어를 사용하는 연결 문자열입니다
"An attempt to attach an auto-named database for file C:\blah\blah\blah.mdf failed. A database with the same name exists, or specified file cannot be opened, or it is located on UNC share."
I : 마지막으로
"Data Source=.\SQLExpress;AttachDbFilename=C:\blah\blah\blah.mdf;Trusted_Connection=Yes;User Instance=true"
이 내 예외 www.connectionstrings.com에서 내 대체 연결 문자열을 받았습니다.
당신은 데이터 테이블 – Ric
을 채우기 전에 연결을 열 필요가 내가 추가 한'con.Open()'와 나는 여전히 훨씬 빠르게 같은 예외를 얻을. – ZL1Corvette
MSDN에서 -> _The Fill 메서드는 연결이 아직 열려 있지 않으면 DataAdapter에서 사용중인 Connection을 암시 적으로 엽니 다. Fill이 연결을 연 경우 Fill이 끝나면 연결도 닫힙니다 ._ – Steve