异步访问数据库(经典之三)

来源:互联网 发布:泛普软件 编辑:程序博客网 时间:2024/05/09 02:45
 

异步访问数据库(经典之三)

本测试不作说明 ,原本个人内部使用

    Public Delegate Function SQLOp(ByVal pSql As String) As DataSet    Private Sub Button1_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button1.Click         Dim b As SQLOp = New SQLOp(AddressOf RunSql)         Dim itFAR As IAsyncResult = b.BeginInvoke("select * from tbuser", New AsyncCallback(AddressOf AddComplete), "添加完成!")    End Sub    Sub AddComplete(ByVal itFar As IAsyncResult)  
      Dim ar As AsyncResult = CType(itFar, AsyncResult)        Dim b As SQLOp = CType(ar.AsyncDelegate, SQLOp)        myDs = CType(b.EndInvoke(itFar), DataSet)        Console.WriteLine("结果正确!")        Dim msg As String = CType(itFar.AsyncState, String)        Console.WriteLine(msg)    End Sub       Function RunSql(ByVal pSql As String) As DataSet        Dim m_ConnectionString As String = String.Empty        '创建一个OleDbConnection对象        Dim m_Connection As New SqlConnection        Dim m_Command As New SqlCommand        Try            m_Connection.ConnectionString = "Data Source=WANGLI;Initial Catalog=Newdb;Persist Security Info=True;User ID=sa; PassWord=sa;Asynchronous Processing=True"            '用SqlConnection对象和数据库打开连接            m_Connection.Open()            '定义Command对象将执行SQL            m_Command.Connection = m_Connection            m_Command.CommandType = CommandType.Text            m_Command.CommandText = pSql            Dim ds As New DataSet            Dim da As New System.Data.SqlClient.SqlDataAdapter            da.TableMappings.Add("Table", "TEMP")            da.SelectCommand = m_Command            da.Fill(ds)            Return ds        Catch ex As Exception            Throw New Exception(ex.Message)            Return Nothing        Finally            '关闭SqlConnection对象            m_Connection.Close()        End Try    End Function

原创粉丝点击