After read your code what I understand, you are trying to make SQL string. In sql string final output you miss "'" for every date part. Here is the correct code. hope this is help you.
Dim wherestring As String = "it.[Status] = True"
Dim gotError As Boolean = False
If txtPromoEventFrom.Text = "" And txtPromoEventTo.Text = "" Then
MsgBox("Division code cannot be blank")
gotError = True
Else
If txtPromoEventFrom.Text <> "" Then
wherestring += " AND it.[PromoEvent_From] >= '" + DateTime.Parse(txtPromoEventFrom.Text) + "' "
wherestring += " AND it.[PromoEvent_From] <= '" + DateTime.Parse(txtPromoEventTo.Text) + "' "
End If
If txtPromoEventTo.Text <> "" Then
wherestring += " AND it.[PromoEvent_To] >= '" + DateTime.Parse(txtPromoEventFrom.Text) + "'"
wherestring += " AND it.[PromoEvent_To] >= '" + DateTime.Parse(txtPromoEventTo.Text) + "'"
Else
End If
If gotError = False Then
EntityDataSource1.Where = wherestring
End If
End If