Pues si un Split tiene la función de separar los parámetros de una cadena para agregarlos a una matrix, y a lo contrario que tu dices es mucho más util de lo que crees, este es un ejemplo:
Imports MySql.Data.MySqlClient
Public Class Consultar
Public Opcion As String = ""
Public Tabla As String
Public Campo As String
Public Campos() As String
Public Tipo As String
Public Valor As String
Public Cadena As String
Public BEmpresa As Boolean
Public BAdicional As Boolean
Public Limites As Boolean = False
Public LimiteA As Integer
Public Limiteb As Integer
Public BTTexto As Boolean = False
Public BTodo As Boolean = False
Public Adicional As String
Public CONCATE As Boolean
Dim Conex As New DataBase
Dim CMConsulta As New MySqlCommand
Public RDConsulta As MySqlDataReader
Public DSConsulta As DataSet
Public BSConsulta As BindingSource
Public DAConsulta As MySqlDataAdapter
Public Function vString() As String
Dim Sql As String
Dim vTipo As String
Dim vCampo As String
Dim Variables() As String = Split(Valor, " ")
Dim vVariables As String
Dim Concatenador As String = "AND"
If CONCATE Then Concatenador = "OR"
Sql = ""
vTipo = ""
vCampo = ""
vVariables = ""
If Opcion = "" Then
Select Case Tipo
Case "IGUAL" : vTipo = "="
Case "DIFERENTE" : vTipo = "<>"
Case "CONTENGA" : vTipo = "LIKE"
End Select
For n As Integer = 0 To UBound(Campos)
If n <> 0 Then
vCampo += ", "
End If
vCampo += Campos(n)
Next
Sql = "SELECT " & vCampo & " FROM " & Tabla & " WHERE " & Campo & " "
If BTodo = False Then
For m As Integer = 0 To UBound(Variables)
If m <> 0 Then
Sql += " " & Concatenador & " " & Campo & " "
End If
Sql += vTipo & " "
If IsNumeric(Variables(m)) And BTTexto = False Then
Sql += Variables(m)
Else
If Tipo = "CONTENGA" Then Sql += "'%" & Variables(m) & "%'"
If Tipo = "IGUAL" Or Tipo = "DIFERENTE" Then Sql += "'" & Variables(m) & "'"
End If
Next
ElseIf BTodo = True Then
Sql += vTipo & " "
Dim Todo As String = Nothing
For m As Integer = 0 To UBound(Variables)
If m <> 0 Then
Todo += " "
End If
Todo += Variables(m)
Next
If IsNumeric(Todo) Then
Sql += Todo
Else
If Tipo = "CONTENGA" Then Sql += "'%" & Todo & "%'"
If Tipo = "IGUAL" Or Tipo = "DIFERENTE" Then Sql += "'" & Todo & "'"
End If
End If
Select Case BEmpresa
Case True : Sql += " AND Id_Empresa = " & IdEmpresa
End Select
Select Case BAdicional
Case True : Sql += " AND " & Adicional
End Select
Select Case Limites
Case True
Sql += " LIMIT " & LimiteA & ", " & Limiteb
End Select
ElseIf Opcion = "Tabla" Then
For n As Integer = 0 To UBound(Campos)
If n <> 0 Then
vCampo += ", "
End If
vCampo += Campos(n)
Next
Select Case BEmpresa
Case True : Sql = "SELECT " & vCampo & " FROM " & Tabla & " WHERE Id_Empresa = " & IdEmpresa
Case False : Sql = "SELECT " & vCampo & " FROM " & Tabla
End Select
Select Case BAdicional
Case True
Select Case BEmpresa
Case True : Sql += " AND " & Adicional
Case False : Sql += " WHERE " & Adicional
End Select
End Select
Select Case Limites
Case True
Sql += " LIMIT " & LimiteA & ", " & Limiteb
End Select
End If
Return Sql
End Function
Public Sub Cargar()
Try
Conex.vConectar()
CMConsulta.Connection = Conex.vConecxion
CMConsulta.CommandType = CommandType.Text
CMConsulta.CommandText = vString()
RDConsulta = CMConsulta.ExecuteReader
Debug.Print("Consulta Cargada Exitosamente")
Catch ex As MySqlException
Debug.Print("Exepción de MySQL: " & ex.Message)
End Try
End Sub
Public Sub Carga2()
Conex.vConectar()
DSConsulta = New DataSet
DAConsulta = New MySqlDataAdapter(vString, Conex.vConecxion)
DSConsulta.Tables.Add(Tabla)
DAConsulta.Fill(DSConsulta.Tables(Tabla))
Debug.Print(DSConsulta.Tables.ToString)
BSConsulta.DataSource = DSConsulta
BSConsulta.DataMember = Tabla
End Sub
Public Sub Cargar3()
Conex.vConectar()
CMConsulta.Connection = Conex.vConecxion
CMConsulta.CommandType = CommandType.Text
CMConsulta.CommandText = Cadena
RDConsulta = CMConsulta.ExecuteReader
End Sub
Public Sub Descargar()
RDConsulta.Close()
RDConsulta = Nothing
Conex.vDesconectar()
CMConsulta.Dispose()
End Sub
Public Sub Descarga2()
DAConsulta.Dispose()
DSConsulta.Dispose()
Conex.vDesconectar()
End Sub
End Class