【问题标题】:VB.NET Local Database Connection/Data ExtractionVB.NET 本地数据库连接/数据提取
【发布时间】:2012-03-23 06:21:10
【问题描述】:

我一直在查看一堆代码 sn-ps,但我只是不明白那里发生了什么。对于理解连接、读取/操作和关闭过程的一些帮助将不胜感激。

我一直在阅读有关这些 DataAdapter、Ole 和 Sql 以及 Sqlce 的所有信息,但我不知道该使用哪个或其他什么。

我在 VB.NET 2010 中创建了一个以 database.sdf 形式出现的数据库,并选择了本地数据库选项(我认为这是相关的?)。然后,我用一行数据填充数据库,其中包含列标题和主键。该表包含许多不同的列,但出于测试目的,以下是相关的:

  • 数据库名称:db_test
  • 表名称:位置
  • 主键列标题:CITY
  • 另一列:BOUND_X
  • 这两个单元格中的信息:CITY - 'Brunswick' 和 BOUND_X - '5'
  • 只有一行数据,所以这个 是 Row(0) 或 Row(1),因为我不知道 .NET 使用什么作为其起始索引。

这是我拼凑起来的,但我很确定它甚至没有朝着正确的方向......

显然,代码帮助将是惊人的,但如果有人愿意用英语分解这个过程,那就太棒了。

Dim conn As SqlConnection = New SqlConnection("Data Source=G:\Programming\VB.NET\TEST\TEST\db_test.sdf")

Dim ds As New db_test
Dim sql As New SqlCommand("SELECT * FROM Locations WHERE CITY='Brunswick'")

conn.Open()

(I have no idea what this is actually referring to, I am just trying to read data with these commands below that seemed to pop up a lot in forums...)
Dim sdr As SqlDataReader = sql.ExecuteReader
While sdr.Read = True
    MsgBox(sdr.Item("CITY") & " " & sdr.Item("BOUND_X"))
End While

sdr.Close()

conn.Close()

【问题讨论】:

    标签: .net sql database vb.net database-connection


    【解决方案1】:

    .NET 中的数据访问代码被归类为 ADO.NET。您可以在此处阅读以供参考:

    http://msdn.microsoft.com/en-us/library/h43ks021(v=vs.100).aspx

    关于代码:

    1. SqlConnection 已初始化。连接是在数据源访问数据的方法。由于您的源是单文件数据库(可能是 SQL CE),因此它使用文件路径进行初始化。所有其他类都使用 SqlConnection 来访问数据源。
    2. 初始化命令以获取必要的数据。它可能是对存储过程或 SQL 查询的调用。它展示了获取数据的方式——获取什么数据以及如何获取。
    3. 与数据源的连接已打开。打开传输数据的通道,进行必要的操作(端口打开、握手、文件打开等)
    4. SqlDataReader 是基于命令和连接读取数据的机制之一。命令需要连接(应该设置 sql.Connection = conn)并且可以以三种不同的方式执行: ExecuteReader() - 返回 dataReader 并作为一组获取行; ExecuteScalar() - 执行统计 sql 查询,如 count/avg/... 返回单行单列结果(如 '5') - 返回 int; ExecuteNonQuery() - 执行不返回任何结果的查询(如创建或删除表等)。
    5. 因此,dataReader 就像文件的 StreamReader,只是返回而不是读取的行 - 获取的行。它指向整个集合的当前行。默认的做法是使用 Read() 遍历 dataReader 并将每个 dataRow 保存到 List 或其他东西中。
    6. 连接已关闭,无法使用空闲资源。

    更多技术上正确的代码可以在这里找到:

    http://msdn.microsoft.com/en-us/library/dw70f090.aspx#Y533

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2011-05-13
      相关资源
      最近更新 更多