.net - ADO.NET:DataSet 或 DataTable 以及如何检索数据

标签 .net database ado.net

SO 社区

我刚开始使用 ADO.NET,对编程还很陌生。我已经从这个社区获得了一些支持,这非常有用,但我有另一个问题。

简单来说,我正在创建一个简单的 Windows 窗体,其中包含员工姓名的组合框和一个按钮,这样当用户单击该按钮时,所选员工的电子邮件地址就会出现在窗体的文本框中。

在我的项目中,我有数据库并在加载表单时连接到我的数据库并创建一个数据表,如下所示:

Public Class GetEmployeeDataset

Private tbl As New DataTable

Public Sub New()
    Dim strConn, strSQL As String
    strConn = "Data Source=.\SQLExpress;Initial Catalog=MyDatabase;Integrated Security=True;"
    strSQL = "SELECT * FROM EmployeeTable"

    Dim da As New SqlDataAdapter(strSQL, strConn)
    da.Fill(tbl)
End Sub

End Class

此时我有两个问题:

  1. 我使用的是 DataTable 而不是 DataSet,因为据我所知,DataSet 是 DataTable 的集合,而我这里只有一个简单的 DataTable(5 列,100 行),因此使用 DataTable 似乎更容易.这有什么问题吗?
  2. 现在我有了一个 DataTable(在我的示例中为“tbl”),我该如何查询该 DataTable 以检索正确的数据,即基于员工姓名的 EmailAddress?在 SQL 中,它将是“SELECT EmailAddress WHERE EmployeeName = SelectedItem”。我已经查看过使用 DataTable 的 Select 方法但无济于事,然后我使用 DataView 的 RowFilter 方法但没有任何成功。

谁能指出我正确的方向?

亚历克斯

最佳答案

我根本不使用数据集或数据表。我发现使用它们的唯一原因是如果您想“离线”保存所有数据,对数据进行更改,然后根据需要将这些更改提交回数据库。

如果您所做的只是根据用户交互从服务器获取数据,那么使用 DataTable 可能有点过分了。

编辑:哦,回答你的实际问题:

  1. 听起来不错,因为您只需要一张 table 。
  2. 对 DataTable 使用 Select 方法(它将返回满足 where 条件的 DataRow 数组)

关于.net - ADO.NET:DataSet 或 DataTable 以及如何检索数据,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/879381/

相关文章:

c# - 如何使用 IE/.Net/C# 进行真正的多线程网络挖掘?

.net - Dispatcher.CurrentDispatcher 与 Application.Current.Dispatcher

php - 什么是更好的额外查询或数据库中的额外列?

php - 函数里面没有选择数据库,用PDO怎么解决?

C# SQL 命令变量与文字

.net - 写入大型 BLOB 会抛出 InvalidOperationException

c# - 检测 BinaryExpression 中的括号

php - 如何将元素(下拉菜单项)定位在父菜单的正下方

node.js - 在 Mongoose 的模式中使用短字段名称是否可取?

c# - SQLTransaction 已完成错误