2012-05-18 5 views
-1

Linq to VB.NET에서 시작하여 데이터베이스에 간단한 쿼리를 작성하는 방법을 알아 내려고합니다. 나는 프로그래밍으로 모든 것을하고 싶다.VB.NET Linq to SQL - 테이블에서 쿼리

connectionstring을 사용하여 데이터베이스에 연결했는데 정상적으로 작동합니다. 데이터베이스가 존재하는지 여부는 알 수 있습니다. 그러나 테이블을 쿼리하려고 할 때 테이블에 연결되는 부분이 누락되었습니다. 나는 thi에 대한 답변을 찾기 위해 많이 봤지만,

행운을 빕니다. 누구든지 올바른 방향으로 나를 가리킬 수 있습니까?

코드 :

Dim strContactString, strDBServer, strDBName, strSQLUser, strSQLPW As String 

    strDBServer = "MyServer" 
    strDBName = "Northwind" 
    strSQLUser = "sa" 
    strSQLPW = "MyPW" 

    strContactString = "" 
    strContactString = strContactString & "data source=" & strDBServer & ";" 
    strContactString = strContactString & "initial catalog=" & strDBName & ";" 
    strContactString = strContactString & "user id=" & strSQLUser & ";" 
    strContactString = strContactString & "password=" & strSQLPW & ";" 

    Dim MyContext As New DataContext(strContactString) 

    'This works: 
    If MyContext.DatabaseExists Then 
     MsgBox("DB Exists") 
    Else 
     MsgBox("DB Does Not Exist") 
    End If 

    'This is the query I want to run (copied from samples I found) 
    Dim TEST = From c In MyContext.Customers _ 
    Select c.ContactName 

오류 메시지 : '고객'은 'System.Data.Linq.DataContext'의 회원입니다.

답변

2

먼저 DataContext를 직접 사용하지 않아도됩니다.

새 dbml 파일을 프로젝트에 추가하고이를 편집기를 사용하여 데이터베이스에 매핑합니다 (즉, Visual Studio를 데이터베이스에 연결 한 다음 서버 탐색기에서 원하는 테이블을 dbml 편집기로 끌어다 놓음).

그러면 NortwindDataContext와 같은 클래스가 생성됩니다.이 속성은 편집기의 속성 창에서 제어 할 수 있습니다.

그런 다음 쿼리를 작성하는 것을 사용할 수 있습니다

Dim context As New DataContext(strContactString) 
Dim TEST = From c In context.Customers _ 
      Select c.ContactName 
+0

이것은 올바르게 들리지 않습니다. 필자는 모든 데이터베이스에 연결하기 위해 이와 같은 UI를 통해 아무 것도 추가 할 필요가 없었습니다. 당신은 할 수 있지만, 할 필요는 없습니다. – Yatrix

+0

LINQ to SQL을 올바르게 사용하려면 강력한 타이핑을 기반으로해야합니다. 즉, 해당 클래스를 만들려면 디자인 타임에 데이터베이스를 읽어야합니다. – DamienG

+0

그것이 그의 코드가 달성하려고하는 것처럼 보입니다. 유형 안전의 방향으로 밀면됩니다. 나는 l2s 에디터가 사람이 고안 한 최고의 도구는 아니지만 작은 애플 리케이션을위한 일을한다고 동의한다. – linkerro

0

http://msdn.microsoft.com/en-us/library/bb399375.aspx

"모범 사례 대신 기본의 DataContext 클래스와 getTable이 방법에 의존 강력한 형식의 DataContext를 선언하는 것입니다. 강력한 형식의 DataContext는 다음 예제와 같이 모든 Table 컬렉션을 컨텍스트의 멤버로 선언합니다. "

db가 올바르게 연결되어 있으면 문제가 될 수 있습니다.