Solved

How to create a function of this SUB?

Posted on 2007-11-21
8
201 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
 
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
Is Your Active Directory as Secure as You Think?

More than 75% of all records are compromised because of the loss or theft of a privileged credential. Experts have been exploring Active Directory infrastructure to identify key threats and establish best practices for keeping data safe. Attend this month’s webinar to learn more.

 
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

Is Your Active Directory as Secure as You Think?

More than 75% of all records are compromised because of the loss or theft of a privileged credential. Experts have been exploring Active Directory infrastructure to identify key threats and establish best practices for keeping data safe. Attend this month’s webinar to learn more.

Question has a verified solution.

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

Article by: jpaulino
XML Literals are a great way to handle XML files and the community doesn’t use it as much as it should.  An XML Literal is like a String (http://msdn.microsoft.com/en-us/library/system.string.aspx) Literal, only instead of starting and ending with w…
Microsoft Reports are based on a report definition, which is an XML file that describes data and layout for the report, with a different extension. You can create a client-side report definition language (*.rdlc) file with Visual Studio, and build g…
This Micro Tutorial will teach you how to censor certain areas of your screen. The example in this video will show a little boy's face being blurred. This will be demonstrated using Adobe Premiere Pro CS6.
As a trusted technology advisor to your customers you are likely getting the daily question of, ‘should I put this in the cloud?’ As customer demands for cloud services increases, companies will see a shift from traditional buying patterns to new…

864 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

Need Help in Real-Time?

Connect with top rated Experts

21 Experts available now in Live!

Get 1:1 Help Now