Thanks JM. Elegant solution from you as usualHere is my final working function
Code:Public Function GetEventsByEventType(ByVal EventType As List(Of Integer), ByVal DayInterval As Integer) As DataTable Dim cmd As MySqlCommand = New MySqlCommand Using con As New MySqlConnection(strCon) Dim query As New StringBuilder("SELECT ID,Activity,Teams,Venue,Timing,Eventdate FROM tblcal WHERE ((EventDate >= CURDATE()) AND (EventDate <= DATE_ADD(CURDATE(), INTERVAL ?DayInterval DAY)))") Select Case EventType.Count Case 0 query.Append(" WHERE EventType = ?EventType") cmd.Parameters.AddWithValue("?EventType", EventType.Item(0)) Case Is > 0 query.Append(" AND EventType IN (") Dim paramName As String For index As Integer = 0 To EventType.Count - 1 Step 1 paramName = "?EventType" & index If index > 0 Then query.Append(", ") End If query.Append(paramName) cmd.Parameters.AddWithValue(paramName, EventType.Item(index)) Next index query.Append(")") End Select cmd.Parameters.AddWithValue("?DayInterval", DayInterval) cmd.CommandText = query.ToString cmd.Connection = con con.Open() Dim reader As MySqlDataReader = cmd.ExecuteReader _data.Load(reader) con.Close() reader.Close() cmd.Dispose() Return _data End Using End Function




Here is my final working function
Reply With Quote