-1

私は VB.NET で Linq to SQL から始めて、データベースへの単純なクエリを作成する方法を理解しようとしています。私はそれをすべてプログラム的に行いたいと思っています。

接続文字列を使用してデータベースに接続しましたが、これは正常に機能します。データベースが存在するかどうかにかかわらず、メッセージを取得できます。しかし、テーブルにクエリを実行したい場合、テーブルに接続する部分がありません。私はこれに対する答えを見つけるためにたくさんグーグルで検索しましたが、

運がない。誰かが私を正しい方向に向けることができますか?

コード:

    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

エラー メッセージ: 'Customers' は 'System.Data.Linq.DataContext' のメンバーではありません。

4

2 に答える 2

2

まず、DataContext を直接使用することは想定されていません。

プロジェクトに新しい dbml ファイルを追加し、エディターを使用してそれをデータベースにマップします (これは、Visual Studio をデータベースに接続し、必要なテーブルをサーバー エクスプローラーから dbml エディターにドラッグすることを意味します)。

これにより、NortwindDataContext のような colled クラスが生成されます (これは、エディターのプロパティ ペインから制御できます)。

その後、それを使用してクエリを作成できます。

Dim context As New DataContext(strContactString)
Dim TEST = From c In context.Customers _
           Select c.ContactName
于 2012-05-18T14:49:45.167 に答える
0

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

「ベスト プラクティスは、基本的な DataContext クラスと GetTable メソッドに依存するのではなく、厳密に型指定された DataContext を宣言することです。厳密に型指定された DataContext は、次の例のように、すべての Table コレクションをコンテキストのメンバーとして宣言します。」

データベースが正しく接続されている限り、これが問題になる可能性があります。

于 2012-05-18T15:02:22.683 に答える