-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

错误消息:“客户”不是“System.Data.Linq.DataContext”的成员。

4

2 回答 2

2

首先,您不应该直接使用 DataContext 。

您将一个新的 dbml 文件添加到您的项目并使用编辑器将其映射到数据库(这意味着将 Visual Studio 连接到您的数据库,然后将所需的表从服务器资源管理器拖动到 dbml 编辑器)。

这将为您生成一个类,例如 NortwindDataContext(您可以从编辑器的属性窗格中控制它)。

然后,您可以使用它来编写查询:

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,而不是依赖于基本的 DataContext 类和 GetTable 方法。一个强类型的 DataContext 将所有 Table 集合声明为上下文的成员,如下例所示。”

只要数据库连接正确,这可能是您的问题。

于 2012-05-18T15:02:22.683 回答