当前位置:编程学习 > C#/ASP.NET >>

求一个.net多线程读写sqlserver的例子

本人之前没做过多线程的东西,这次因为工作原因要临时抱佛脚,时间要求很急,所以上来求各位高手给个例子看看,要有源码最好。谢谢大家!
VB.NET或者C#都可以!
分不够另外开帖子加分!!!!!!!!   
也可发邮件给我:haiquan@hichengdu.com, --------------------编程问答--------------------

 Private Sub InitingProducts()
        'tbClasses.TabPages.Clear()
        Dim t As System.Threading.Thread
        t = New Thread(AddressOf InitTabClass)
        t.IsBackground = True
        t.Start()
    End Sub

    Private Sub InsertPage(ByRef page As TabPage)
        tbClasses.TabPages.Add(page)
    End Sub

    Private Sub InitTabClass()
        If Threading.Monitor.TryEnter(_SycObject, 200) Then
            '200毫秒内获得锁既刷新 
            '删除现有的
            Me.Invoke(New Execute(AddressOf tbClasses.TabPages.Clear))
            Dim conn As OleDbConnection = New OleDbConnection(_ConnectionString)
            Dim command As OleDbCommand
            Dim strSql As StringBuilder = New StringBuilder()
            strSql.Append("select ClassNo, Named from PRODUCT_CLASS where status<>'D'")
            Try
                conn.Open()
                command = New OleDbCommand(strSql.ToString())
                command.Connection = conn
                Using reader As OleDbDataReader = command.ExecuteReader(CommandBehavior.CloseConnection)
                    Dim page As TabPage
                    While reader.Read
                        page = New TabPage(reader.GetString(1))
                        page.Name = reader.GetString(0)
                        page.BackColor = Color.White
                        InitProductContainer(page, conn)
                        Me.Invoke(_PageInserter, page)
                    End While
                End Using
            Catch ex As Exception
                frmMessageBox.ShowBox(ex.Message, ErrTitle, MessageBoxButtons.OK, MessageBoxIcon.Error)
            Finally
                If Not conn Is Nothing Then
                    conn.Dispose()
                End If
                Threading.Monitor.Exit(_SycObject)
            End Try
        End If
    End Sub

    Private Sub InitProductContainer(ByRef page As TabPage, ByVal conn As OleDbConnection)
        For Each controlItem As Control In page.Controls
            If controlItem.GetType() Is GetType(ListView) Then
                page.Controls.Remove(controlItem)
            End If
        Next
        Dim productContainer As New ListView()
        AddHandler productContainer.Click, AddressOf ProductList_DoubleClick
        productContainer.Scrollable = True
        productContainer.Dock = DockStyle.Fill
        productContainer.View = _ProductViewStyle
        productContainer.Name = page.Text & "[" & page.Name + "]"
        InitProductList(page.Name, productContainer, conn)
        page.Controls.Add(productContainer)
    End Sub

    Private Sub InitProductList(ByVal classId As String, ByRef listContainer As ListView, ByVal conn As OleDbConnection)
        Dim command As OleDbCommand
        Dim strSql As StringBuilder = New StringBuilder()
        strSql.Append("select Named, Barcode  from PRODUCTS where ClassNo=@ClassNo and status<>'D' and Account = @Account")
        Dim w As Int32 = CInt(Math.Floor((tbClasses.Width - 20) / 2))
        listContainer.Columns.Add("商品名称", w, HorizontalAlignment.Left)
        listContainer.Columns.Add("条码", w - 50, HorizontalAlignment.Left)
        listContainer.LargeImageList = ImageList1
        listContainer.SmallImageList = ImageList2
        Dim param0 As New OleDbParameter("@ClassNo", classId)
        Dim param1 As New OleDbParameter("@Account", GAccount)
        command = New OleDbCommand(strSql.ToString())
        command.Connection = conn
        command.Parameters.Add(param0)
        command.Parameters.Add(param1)
        Try
            Using dr As OleDbDataReader = command.ExecuteReader()
                Dim item As ListViewItem
                While dr.Read()
                    item = New ListViewItem(dr.GetString(0))
                    item.SubItems.Add(dr.GetString(1))
                    item.ImageKey = "item4.png"
                    listContainer.Items.Add(item)
                End While
            End Using
        Catch
        End Try
    End Sub


俺写的一个 --------------------编程问答-------------------- 这个代码没完整啊,我没做过多线程的东西,所以我想运行起来看看,但是太多东西没有定义,你可不可以把你的代码里涉及到数据库连接和图片的东西去掉,然后发一个完整的给我。
非常感谢!
haiquan@hichengdu.com --------------------编程问答-------------------- --------------------编程问答-------------------- 我来学习,帮楼主顶一下. --------------------编程问答-------------------- 如果自己摸索的话,可能要花久一点的时间也可以搞定,但是老板肯定要发飙了!所以让大家见笑啦。。。。。
补充:.NET技术 ,  C#
CopyRight © 2012 站长网 编程知识问答 www.zzzyk.com All Rights Reserved
部份技术文章来自网络,