VB.NET本地数据库连接/数据提取

时间:2012-03-23 06:21:11

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

我一直在查看一堆代码片段,我只是不明白那里发生了什么。理解连接,阅读/操作和结束过程的一些帮助将非常有用。

我继续阅读所有关于这些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()

1 个答案:

答案 0 :(得分: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. 关闭连接以释放所使用的资源。
  7. 技术上更正确的代码看起来像这里可以找到:

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