Link to home
Start Free TrialLog in
Avatar of GlobaLevel
GlobaLevelFlag for United States of America

asked on

ASP.NET - error - Value of type 'System.Collections.Generic.List(Of String)' cannot be converted


the goal of this code is that on postback from the user selecting from a drop down menu...will go and find all phone numbers and
populate a grid...however, I get the following error:
--------------
line 81:

   " and  TO_NUMBER in ('" & String.Join(",", myList) & ")"
in the IDE...it has mylist underlined....

when I put the cursor overmylistThen it displays this error:
Value of type 'System.Collections.Generic.List(Of String)' cannot be converted to '1-dimensional array of String'.




Protected Sub DropDownList1_SelectedIndexChanged(ByVal sender As Object, ByVal e As System.EventArgs)
        Dim DDL_val As String
        Dim flag As String
        Dim TC_ID As String
        
        TC_ID = Session("SessionTC_ID")
        DDL_val = DropDownList1.Text
        flag = "dataset"
        
        Session("sessionDDL") = DropDownList1.Text
        
        
        
        ' -----------------------------------------------------------------------------
        ' DHAEST SOULTION FROM EE...
        ' http://www.experts-exchange.com/Programming/Languages/.NET/Q_26843829.html
        '
        
        
        
        Dim myList As List(Of String) = New List(Of String)
        
        Try

            
            Dim MyDropDown As DropDownList
           
            Dim myArray As New ArrayList()
            Dim dataReader As SqlDataReader
            Dim x As Integer = 0
            Dim sqlConnection As String
            
            TC_ID = Session("SessionTC_ID")
            MyDropDown = DropDownList1
            
               
            Using sqlConn As New SqlConnection
                sqlConnection = "Data Source=xx.xx.xx.xx;Initial Catalog=dcdff;Trusted_connection=true;"
                sqlConn.ConnectionString = sqlConnection
                Dim SQLstring As String = "SELECT * FROM campaign WHERE TC_ID = '" & TC_ID & "'" & _
   " AND campaign_name = '" & Session("sessionCAMP_NAME") & "'"
          
                sqlConn.Open()
                Using command As New SqlCommand(SQLstring, sqlConn)
                    dataReader = command.ExecuteReader(System.Data.CommandBehavior.CloseConnection)
                    If dataReader.HasRows Then
                        Do While dataReader.Read()
                            myList.Add(dataReader("TO_NUMBER").ToString())
                        Loop
                        
                    End If
                    dataReader.Close()
                    sqlConn.Close()
                End Using
            End Using
            
            myArray.Sort()

            MyDropDown.DataSource = myArray
            MyDropDown.DataBind()
        Catch ex As Exception
           
        End Try
          
        
               
        ' --------------------------------
        ' POPULATE THE TEXTBOX CONTROL..ON SELECTION FROM DROPDOWNLIST
        ' --------------------------------
        Try
            Dim Go_Message As TextBox
            Dim sqlConnection As String
          

            Using sqlConn As New SqlConnection
                sqlConnection = "Data Source=xx.xx.xx.xx;Initial Catalog=dffgxt;Trusted_connection=true;"
                sqlConn.ConnectionString = sqlConnection
                ' Dim SQLstring As String = "SELECT * FROM message_queue_recieve WHERE TC_ID = '" & TC_ID & "' and campaign_name = '" & DDL_val & "'" & _
                '" TO_NUMBER = '" & Session("sessonTO_NUMBER") & "'"
                Dim SQLstring As String = "SELECT * FROM message_queue_recieve WHERE TC_ID = '" & TC_ID & "'" & _
                " and  TO_NUMBER in ('" & String.Join(",", myList) & ")"
               
                Dim TblAdaptar As New SqlDataAdapter(SQLstring, sqlConn)
                Dim Tbl As New DataSet
                Tbl.Clear()
                Try
                    TblAdaptar.Fill(Tbl)
                    Me.GridView1.DataSource = Nothing
                    Me.GridView1.DataSource = Tbl
                    Me.GridView1.DataBind()
                Catch ex As Exception
                End Try
            End Using
        Catch ex As Exception
        End Try
        
        
        ' more code...

Open in new window

Avatar of Carl Tawn
Carl Tawn
Flag of United Kingdom of Great Britain and Northern Ireland image

You need to convert your list to an array.

i.e.
string.Join(",", myList.ToArray())

Open in new window

that is indeed the reason :


Line 21:
        Dim myList As List(Of String) = New List(Of String)

Line 81 :
               " and  TO_NUMBER in ('" & String.Join(",", myList) & ")"


A generic List is indeed not accepted by the String.Join method

Use for Line 81 the folowig
               " and  TO_NUMBER in ('" & String.Join(",", myList.AsEnumerable()) & ")"

regards

poor beggar
ASKER CERTIFIED SOLUTION
Avatar of Carl Tawn
Carl Tawn
Flag of United Kingdom of Great Britain and Northern Ireland image

Link to home
membership
This solution is only available to members.
To access this solution, you must be a member of Experts Exchange.
Start Free Trial