SQL搜索多列然后更新RichTextBoxes VB.Net

时间:2017-07-26 17:00:14

标签: vb.net ms-access

我遇到了一个问题,我搜索一个表并将结果填入RichTextBoxes。我遇到问题的地方是我为每个RichTextBox使用多个阅读器。虽然它有效,但我觉得有更好的方法可以做到这一点。

我的表有多列,一个用于商店编号(唯一,非复制),一个用于主要技术[主要1](这对于多个商店来说是相同的),一个用于二级技术[主要2] (对于多个商店,这将是相同的)等等。

我想知道是否有更聪明的方法来搜索[main 1]并将商店返回RichPrimaryTech(RichTextBox),搜索[main 2]并将商店返回RichSecondaryTech(RichTextBox),依此类推单个OleDbReader与多个读者?

我问这个问题的另一个原因是,我将再次对此表单的另一部分进行此操作,并且我试图不复制一堆工作或使用多个读者。

Private Sub ButtonLookUp_Click(sender As Object, e As EventArgs) Handles ButtonLookUp.Click
    If ComboTechSelect.SelectedItem = "" Then
        MessageBox.Show("Nothing Selected")
    Else
        Dim setech As String = ComboTechSelect.SelectedItem
        Dim MainTechDataFile As String
        Dim MainTechConnString As String
        Dim MainTechConnection As OleDbConnection = New OleDbConnection
        Dim MR As OleDbDataReader
        Dim DX As OleDbDataReader
        Dim TX As OleDbDataReader

        Dim provider As String = "Provider=Microsoft.ACE.OLEDB.12.0;Data Source ="
        MainTechDataFile = "D:\\GateTechDBTest.accdb"
        MainTechConnString = provider & MainTechDataFile
        MainTechConnection.ConnectionString = MainTechConnString


        MainTechConnection.Open()

        Dim query As OleDbCommand = New OleDbCommand("Select * From Gtech WHERE [Gate Tech] = @tech", MainTechConnection)
        query.Parameters.AddWithValue("@tech", setech)


        MR = query.ExecuteReader
        While MR.Read()
            DTPLiability.Text = MR("Liability").ToString
            DTPWorkersComp.Text = MR("Workers Comp").ToString
            DTPAutoLiability.Text = MR("Auto Liability").ToString
            DTPExcessLiability.Text = MR("Excess Liability").ToString
            TextGateTechStreet.Text = MR("Address").ToString
            TextTechCity.Text = MR("City, State").ToString
            TextBoxTechZip.Text = MR("Zip").ToString
            TextTechPhone.Text = MR("Phone Number").ToString
            TextTechFax.Text = MR("Fax").ToString

        End While

        Dim stores As OleDbCommand = New OleDbCommand("Select * From Search WHERE [Main 1] = @tech1", MainTechConnection)
        stores.Parameters.AddWithValue("@tech1", setech)

        DX = stores.ExecuteReader
        While DX.Read()
            RichPrimaryTech.AppendText(DX("Store").ToString + Environment.NewLine)
        End While


        Dim stores2 As OleDbCommand = New OleDbCommand("Select * From Search WHERE [Main 2] = @tech2", MainTechConnection)
        stores2.Parameters.AddWithValue("@tech2", setech)

        TX = stores2.ExecuteReader
        While TX.Read()
            RichSecondaryTech.AppendText(TX("Store").ToString + Environment.NewLine)
        End While

        MainTechConnection.Close()

        DTPAutoLiability.Enabled = True
        DTPExcessLiability.Enabled = True
        DTPLiability.Enabled = True
        DTPWorkersComp.Enabled = True

    End If
End Sub

0 个答案:

没有答案