【问题标题】:how to pull data from DB/datagridview/datatable如何从 DB/datagridview/datatable 中提取数据
【发布时间】:2013-12-11 09:10:24
【问题描述】:

我有这张表..我想提取一个特定的数据..

假设.. 我将 Home Depot 作为一个按钮。我怎样才能将CameraID 的值拉到 2 并将其放在变量上.. 像这样的..

'dim foo as string = cameraID where MarkerName is Home Depot

【问题讨论】:

  • 注意到ID和CameraID是同一个值吗?如果您想不出它们可能不同的情况(这意味着相机可能具有不同的纬度/经度值),那么这意味着不需要 ID 列,您可以使用 CameraID 作为您的 PK 来简化。
  • 不。 ID 是自动编号的(我也不使用),而 CameraID 是用户的输入。我只是使用 12345 cameraID 来调试程序,但一般来说,用户可以将 cameraID = 11 放在 Home Depot 上。跨度>
  • 那他们为什么要给它任何数字呢?如果要求加载 Mall 相机,这应该就是您所需要的。 ID 等通常由应用程序来管理,而用户可以随意引用它们。
  • 你看。自动编号为 PK,所以当他们添加数据时我不会有任何问题。所以,如果他们添加数据,在地图上选择位置,添加名称,然后添加该位置的相机。我参考了MarkerName,因为这只是我与标记的连接。它真的很复杂,也不容易解释。

标签: .net vb.net datagridview datatable


【解决方案1】:

假设您使用DataTable,例如:

' example DataTable '
Dim dt = new DataTable()
dt.Columns.Add("cameraID", gettype(integer))
dt.Columns.Add("MarkerName", gettype(string))
dt.Rows.Add(new object() {2, "Home Depot"})
dt.Rows.Add(new object() {1, "CSI"})

您可以使用 LINQ 查询:

' foo is now 2 '
Dim foo = dt.AsEnumerable() _
            .Where(function(row) row("MarkerName") = "Home Depot") _
            .Select(function(row) row("cameraID")) _
            .Single()

Select方法过滤DataTable

' foo2 is now 2 '
Dim foo2 = dt.Select("MarkerName = 'Home Depot'")(0)("cameraID")

【讨论】:

  • 谢谢,你又回答了我的问题,我不知道,所有的变通方法都不起作用。这证实了这一点。 ://
猜你喜欢
  • 2010-11-23
  • 1970-01-01
  • 2013-06-01
  • 2019-07-02
  • 1970-01-01
  • 1970-01-01
  • 2011-09-11
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多