Welcome to Experts Exchange

Add your voice to the tech community where 5M+ people, just like you, are talking about what matters.

  • Help others & share knowledge
  • Earn cash & points
  • Learn & ask questions
Solved

How to create a function of this SUB?

Posted on 2007-11-21
8
203 Views
Last Modified: 2010-04-23
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
Comment
Question by:leeds2000
  • 4
  • 3
8 Comments
 
LVL 10

Expert Comment

by:vadim63
ID: 20331334
What this function supposed to return?
0
 
LVL 3

Author Comment

by:leeds2000
ID: 20331345
I need diffrent listview columns on each button, and i need a diffrent SQL query on each button
0
 
LVL 10

Expert Comment

by:vadim63
ID: 20331392
The "function" itself have to return some value. That's what I'm asking. What value?
0
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.

 
LVL 2

Expert Comment

by:SZachmann
ID: 20331414
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
 
LVL 10

Accepted Solution

by:
vadim63 earned 500 total points
ID: 20331417
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
 
LVL 3

Author Comment

by:leeds2000
ID: 20331496
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
 
LVL 3

Author Comment

by:leeds2000
ID: 20331505
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
 
LVL 10

Expert Comment

by:vadim63
ID: 20331538
So, as I said, use the "sender" object.
0

Featured Post

Free Tool: IP Lookup

Get more info about an IP address or domain name, such as organization, abuse contacts and geolocation.

One of a set of tools we are providing to everyone as a way of saying thank you for being a part of the community.

Question has a verified solution.

If you are experiencing a similar issue, please ask a related question

Article by: Kraeven
Introduction Remote Share is a simple remote sharing tool, enabling you to see, add and remove remote or local shares. The application is written in VB.NET targeting the .NET framework 2.0. The source code and the compiled programs have been in…
I think the Typed DataTable and Typed DataSet are very good options when working with data, but I don't like auto-generated code. First, I create an Abstract Class for my DataTables Common Code.  This class Inherits from DataTable. Also, it can …

809 members asked questions and received personalized solutions in the past 7 days.

Join the community of 500,000 technology professionals and ask your questions.

Join & Ask a Question