【问题标题】:how to query/get data from Datasource in VB.NET如何在 VB.NET 中从数据源查询/获取数据
【发布时间】:2011-12-21 13:14:42
【问题描述】:

我正在 vb.net 中构建一个数据库应用程序,我首先从工具栏中的 DATA 添加一个数据源。我的连接很好,它在数据源面板中显示了我的所有表。

我还看到了与我的数据库相关的新类,例如

sakilaDataSet
sakilaDataSet.customerDataTable

... 等等。

我如何查询和使用这些?我用谷歌搜索了很多,但我无法得到这个。

Dim cust As sakilaDataSet.customerDataTable = New sakilaDataSet.customerDataTable
        Dim row() As System.Data.DataRow = cust.Select("customer_id=5")
        MsgBox(row.Count)

我最后一次尝试使用上面的代码,但row.count 总是为零。

【问题讨论】:

    标签: vb.net datasource


    【解决方案1】:

    您需要打开与数据库的连接。以下是一些选项:

    您可以使用EntityFramework,它提供了一种访问数据并通过映射到实体(类)来控制数据的好方法。为此,在 VisualStudio 中创建一个 ClassLibrary 项目,添加一项 ADO.NET Entity Data Model。这将打开一个向导,帮助您连接到数据库,将数据库中的对象映射到实体,并通过对实体上下文的引用来访问实体。基础很简单。

    其他选项是使用OLEDB provider,这是访问数据库的经典方式。一个example 打开员工的Access DB:

    Dim connString As String = "provider= microsoft.jet.oledb.4.0; " & _
         "data source=Employee.mdb;"
    
      Dim conn As New OleDbConnection(connString)
    
      Try
         conn.Open()
      Finally
         conn.Close()
         Console.WriteLine("Connection Closed")
      End Try
    

    访问http://www.connectionstrings.com/ 以获取许多数据库的常用连接字符串列表。其他有用的链接:

    实体框架:

    http://www.codeguru.com/csharp/csharp/net30/article.php/c15489

    http://www.asp.net/entity-framework/tutorials

    OLEDB:

    http://oreilly.com/catalog/progvbdotnet/chapter/ch08.html

    http://www.homeandlearn.co.uk/net/nets12p2ed.html

    http://www.sourcecodester.com/tutorials/net/database-programming-made-easy.html

    希望这会有所帮助。

    【讨论】:

      【解决方案2】:

      我想要实现的是不再使用连接字符串。在VB.net中添加数据源后,制作Data Classes and Adapters,可以直接访问数据库,如下:

      Dim staff As sakilaDataSet.customerDataTable = New sakilaDataSetTableAdapters.customerTableAdapter().GetData
      Dim rows() As sakilaDataSet.customerRow = staff.Select("email='" + email.Text + "'")
      

      【讨论】:

      • 你应该使用参数
      【解决方案3】:

      这个网站http://visualbasic.about.com/od/usingvbnet/a/begdbapp7.htm 有一个很好的教程,其中讨论了使用数据源窗口时会发生什么以及之后如何在代码中使用它。

      我知道这是一个老问题,但它在 Google 搜索结果中的排名很高,而且它更像是一个“这就是你应该这样做”的答案,而不是实际回答你所问的问题

      【讨论】:

        猜你喜欢
        • 2011-11-21
        • 2014-01-14
        • 2015-02-05
        • 1970-01-01
        • 1970-01-01
        • 2021-09-14
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        相关资源
        最近更新 更多