2012-03-23 114 views
0

我一直在寻找一堆代码片段,我只是不理解那里发生了什么。一些帮助理解连接,阅读/操作和关闭过程将不胜感激。VB.NET本地数据库连接/数据提取

我一直在阅读有关这些DataAdapter,Ole和Sql和Sqlce的所有内容,我不知道要使用哪个或哪些内容。

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

  • DB名称:db_test
  • 表名称:位置
  • 主键列标题:CITY
  • 另一列:BOUND_X
  • 信息在这两个细胞:CITY - “不伦瑞克”和BOUND_X - “5”
  • 只有一个数据的行,所以这 要么是行(0)或行(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

.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() - 执行像count/avg/...这样的返回单行单列结果的统计sql查询(如'5') - 返回int; ExecuteNonQuery() - 执行不返回任何结果的查询(如创建或删除表等)。
  5. 因此,dataReader就像StreamReader的文件,只是返回而不是行读取 - 行取回。它指向整个集合的当前行。默认的操作过程是使用Read()遍历dataReader并将每个dataRow保存到列表中。
  6. 连接已关闭,免费使用的资源。

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

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