Вот так, с этим кодом происходит много странных вещей.
Во-первых. Два слэша (//) - это не то, как комментарии делаются в VB.NET. Это синтаксис C #. Вместо этого используйте одинарную кавычку (')
Далее, ошибка, которую вы получили, является ошибкой, исходящей от SQL Server.
«Необходимо объявить скалярную переменную @UserName»
LarsTech специально упомянул в своем комментарии, что код, который вы предоставили, сначала добавляет переменные, а затем сразу создает новый экземпляр SQLDataAdapter. Если вы измените свой код, чтобы сначала создать адаптер данных, а затем заполнить переменные, вы получите лучший результат.
Я не собираюсь предполагать, что переменные da, cb и ds уже объявлены, но переменная Con где-то объявлена.
Dim Query as string ="SELECT * FROM UserLogins WHERE [Login Name]=
@Username AND Password=@passcode"
'Note that I moved these two lines up here and made sure they were properly declared
Dim da as New SqlDataAdapter(Query,Con)
Dim cb as New SqlCommandBuilder(da)
' add parameters to dataadapter select command
da.SelectCommand.Parameters.AddWithValue("@Username", "%" +
txtuserName.Text + "%")
da.SelectCommand.Parameters.AddWithValue("@passcode", "%" +
txtpasslogin.Text + "%")
' execute query and fill dataset
ds = New DataSet
da.Fill(ds)
Datagridview1.Datasource=ds.tables(0)
Наконец, ваш оператор sql также должен иметь пробел между * и FROM, и, как упоминала Мэри в комментариях, знаки% здесь не нужны, потому что вы не делаете подобное.