Использование ... Конец Использование блоков гарантирует, что ваши объекты базы данных будут закрыты и расположены даже в случае ошибки.
Вы можете передать соединение непосредственно в конструктор команды вместе с именемхранимая процедура.
Поскольку вы помечаете свою сетку только для чтения, вам не нужен адаптер данных, и поскольку мы имеем дело только с одной таблицей, нет необходимости в наборе данных.
Второй параметр .AddWithValue
- это значение, которое будет добавлено в базу данных.Вы смешиваете .Add
с .AddWithValue
.Метод .Add
предпочтителен по нескольким причинам.Здесь есть еще одна проблема.Тип данных не может быть VarChar, а значение 1. 1 является целым числом, а VarChar является строкой.Я догадался. Но проверить базу данных, чтобы увидеть, что правильно.
Следуйте указаниям @Jimi, приведенным в комментариях.
Private Sub FillGrid()
Dim dt As New DataTable
Using connection2 As New SqlConnection(clVariables.dbTestConnectionString)
Using CMD As New SqlCommand("DoGetSomething", connection2)
CMD.CommandType = CommandType.StoredProcedure
CMD.Parameters.Add("@ID", SqlDbType.Int).Value = 1
connection2.Open()
dt.Load(CMD.ExecuteReader)
End Using
End Using
dbtTableTmp.DataSource = dt
dbtTableTmp.ReadOnly = True
dbtTableTmp.Refresh()
End Sub