Go Premium for a chance to win a PS4. Enter to Win

x
  • Status: Solved
  • Priority: Medium
  • Security: Public
  • Views: 208
  • Last Modified:

How to create a function of this SUB?

I have a SUB like the code below

I want this SUB to be created as a function, becouse i need the listview to have diffrent columns on each button i press

And i need the string "setning" to be a new SQL query for each button

How do i create a function of this, and then call this function in each button?
Public Sub statistikken(ByVal setning As String)
 
        Dim forbindelse As New System.Data.OracleClient.OracleConnection
        'Dim lststatistikk As ListViewItem
 
        forbindelse.ConnectionString = "user id=***;password=***;data source=****"
        forbindelse.Open()
 
        Dim kommando As New System.Data.OracleClient.OracleCommand(setning, forbindelse)
 
        Dim dataleser As OracleClient.OracleDataReader
        dataleser = kommando.ExecuteReader()
 
        Me.Dgvstatistikk.DataSource = dataleser
 
 
        Dim lstItem As ListViewItem
        While dataleser.Read()
            lstItem = New ListViewItem()
            lstItem.Text = dataleser.Item("column 0")
            lstItem.SubItems.Add(dataleser.Item("column1"))
            ListView1.Items.Add(lstItem)
        End While
 
        forbindelse.Close()
        dataleser.Close()
        dataleser = Nothing
 
    End Sub

Open in new window

0
leeds2000
Asked:
leeds2000
  • 4
  • 3
1 Solution
 
vadim63Commented:
What this function supposed to return?
0
 
leeds2000Author Commented:
I need diffrent listview columns on each button, and i need a diffrent SQL query on each button
0
 
vadim63Commented:
The "function" itself have to return some value. That's what I'm asking. What value?
0
Concerto's Cloud Advisory Services

Want to avoid the missteps to gaining all the benefits of the cloud? Learn more about the different assessment options from our Cloud Advisory team.

 
SZachmannCommented:
I am not sure exactly what you are refering to but it appears that you want to be able to add items to a list box that have a dynamic amount of columns based on the query your run.  I have changed the part of your code where you add the items to the list box.
 Dim lstItem As ListViewItem
        While dataleser.Read()
            lstItem = New ListViewItem()
            For col As Integer = 0 To dataleser.FieldCount - 1
                If col = 0 Then
                    lstItem.Text = dataleser.Item(col)
                Else
                    lstItem.SubItems.Add(dataleser.Item(col))
                End If
            Next
            ListView1.Items.Add(lstItem)
        End While

Open in new window

0
 
vadim63Commented:
Maybe something like this:
    Private Sub YourButtons_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button1.Click, Button2.Click
        Select Case sender.Name.toLower
            Case "button1"
                statistikken("your connection string for button1 here", "column name for button1 here")
            Case "button2"
                statistikken("your connection string for button2 here", "column name for button2 here")
        End Select
    End Sub
 
    Public Sub statistikken(ByVal setning As String, ByVal col As String)
 
        Dim forbindelse As New System.Data.OracleClient.OracleConnection
        'Dim lststatistikk As ListViewItem
 
        forbindelse.ConnectionString = "user id=***;password=***;data source=****"
        forbindelse.Open()
 
        Dim kommando As New System.Data.OracleClient.OracleCommand(setning, forbindelse)
 
        Dim dataleser As OracleClient.OracleDataReader
        dataleser = kommando.ExecuteReader()
 
        Me.Dgvstatistikk.DataSource = dataleser
 
 
        Dim lstItem As ListViewItem
        While dataleser.Read()
            lstItem = New ListViewItem()
            lstItem.Text = dataleser.Item("column 0")
            lstItem.SubItems.Add(dataleser.Item(col))
            ListView1.Items.Add(lstItem)
        End While
 
        forbindelse.Close()
        dataleser.Close()
        dataleser = Nothing
 
    End Sub

Open in new window

0
 
leeds2000Author Commented:
Hmm yes, the function need to return values for the SQL query

now the values to put in the listview

a value for "column 0"
a value for "column 1"
a value for "column 2" <-- not needed on some buttons

is this possible?

0
 
leeds2000Author Commented:
no sorry, the function need these values from the button, values about the columns and values about the SQL query from the button to the function, not from the function to the button.

If you understand?
0
 
vadim63Commented:
So, as I said, use the "sender" object.
0

Featured Post

Free Tool: Path Explorer

An intuitive utility to help find the CSS path to UI elements on a webpage. These paths are used frequently in a variety of front-end development and QA automation tasks.

One of a set of tools we're offering as a way of saying thank you for being a part of the community.

  • 4
  • 3
Tackle projects and never again get stuck behind a technical roadblock.
Join Now