科技行者

行者学院 转型私董会 科技行者专题报道 网红大战科技行者

知识库

知识库 安全导航

至顶网软件频道基础软件使用VB.NET线程访问数据库

使用VB.NET线程访问数据库

  • 扫一扫
    分享文章到微信

  • 扫一扫
    关注官方公众号
    至顶头条

本文介绍了如何使用VB.NET的线程访问数据库并进行参数传递

作者:xl 来源:论坛 2007年11月9日

关键字:

  • 评论
  • 分享微博
  • 分享邮件
2 将数据库访问方法封装到类

  上面提到,线程要执行的方法不能接受任何参数,如果要传入方法特定条件,可以将方法放在一个类中,在类中定义类的属性,需要时可以设置类的属性,然后用方法调用这些属性以实现方法参数类似的功能。同时,因为生成的线程在主应用程序线程之外运行,.NET Framework提供线程隔离,这时如果要用新的线程操纵主应用程序中的对象便不被允许。最好的办法也是将线程要访问的对象包装在类中。下面我们创建一个类,封装属性和数据库访问方法:

Public Class dealDataBase
Private m_sqlDataAdapter As SqlDataAdapter
Private m_table As DataTable
Public Property setDataAdapter() As SqlDataAdapter
Get
setDataAdapter=m_sqlDataAdapter
End Get
Set(ByVal value As SqlDataAdapter)
m_sqlDataAdapter=value
End Set
End Property
Public Property setDataTable() As DataTable
Get
setDataTable=m_table
End Get
Set(ByVal value As DataTable)
m_DataTable=value
End Set
End Property
Public sub GetDataFromDataBase()

m_table.Clear()
m_sqlDataAdapter.Fill(m_table)

End Sub
End Class

  下面是创建线程并运行线程的代码:

Dim myDB As New dealDataBase ()
Dim myThreadStart as ThreadStart
Dim myThread as Thread
myDB.setDataAdapter=Me.DataAdapter1 'DataAdapter1是本窗体内定义的数据适配器
myDB.setDataTable=Me.DataTable1 'DataTable1是本窗体定义的数据表

myThreadStart=New ThreadStart(AddressOf myDB.GetDataFromDataBase)
myThread=New Thread(myThreadStart)
myThread.Start()

End Sub

  3 使用事件

  调用了线程的start方法,并不能确保其中的方法马上执行完,而要得到数据访问的结果又必须等其中的方法执行完毕。如果在运行线程后采用循环查询的方法显然影响了交互性,事件是从线程方法返回数据的好方法。只要在线程方法所在的类中定义一个事件,在线程方法中发出事件,而在窗体类中生成代理。
首先在dealDataBase类声明后加进事件:

Public Class dealDataBase
Public Event GetDataComplete(ByVal e As DtatTable)

End Class

  在类dealDataBase的GetDataFromDataBase()方法中加入发出事件的代码,放在m_sqlDataAdapter.Fill(m_table)后:

Public sub GetDataFromDataBase()

m_sqlDataAdapter.Fill(m_table)
RasiseEvent GetDataComplete(m_table)

End Sub

  下面在窗体类中生成代理

Private Sub dealData (ByVal e As DataTable)
'处理数据表
End Sub

  在创建线程并运行线程的代码中进行事件连接,事件连接代码放在运行线程前, dealDataBase类实例化后:

AddHandler myDB. GetDataComplete,AddressOf dealData

  这样,当线程方法执行完毕就会发出事件,而dealData方法会响应事件并做出处理。

    • 评论
    • 分享微博
    • 分享邮件
    邮件订阅

    如果您非常迫切的想了解IT领域最新产品与技术信息,那么订阅至顶网技术邮件将是您的最佳途径之一。

    重磅专题
    往期文章
    最新文章