В вашем коде много проблем. Конечно, непосредственная причина, вызывающая ошибку компиляции, заключается в том, что вы используете command вместо command.CommandText для назначения запроса команде, но есть и другие.
If DataGridView1.Rows.Count > 0 Then
Dim command As New Data.SqlClient.SqlCommand
command.Text = "insert into MasbrgSpring
(KODEC, WIRE, DIMENSION, STD, NOMLOT, STAT)
VALUES (@kodec, @wire,@dimension,@std,@nomlot,@stat)"
command.Parameters.Add("@kodec", SqlDbType.VarChar)
.... add all the other parameters ....
' Don't forget to set the connection to the command
command.Connection = str
str.Open()
' Now loop over the rows and for each one execute the insert command
For i As Integer = 0 To DataGridView1.Rows.Count - 1
command.Parameters(0).Value = DataGridView1.Rows(i).Cells(0).Value
command.Parameters(1).Value = DataGridView1.Rows(i).Cells(1).Value
.....
command.ExecuteNonQuery()
Next
str.Close()
End If
End Sub
Здесь я удалил все, что касается SqlDataAdapter, DataTable и DataSet. Они вообще не нужны, когда вы выполняете непосредственно SqlCommand.
Наконец, SqlCommand, подготовленный в цикле, является тем, который должен быть выполнен, если вы создадите новую SqlCommand внутри этого метода SQLCOMMAND, то вам нужно будет предоставить ей ту же информацию, которую вы уже дали команде, используемой в цикле.
Таким образом, нет необходимости также в методе SQLCOMMAND, но вы можете напрямую вызвать ExecuteNonQuery для подготовленного SqlCommand.
Последний совет. Очень плохое программирование - иметь глобальный объект SqlConnection. Он сохраняет ресурсы заблокированными на клиенте и на сервере, и если по какой-либо причине вы получаете исключение, соединение остается открытым с побочными эффектами, которые не сразу проявляются при возникновении проблем в других блоках кода данных.
ADO.NET обладает функциональностью Пул соединений , намного более продвинутой, чем та, которую вы пытаетесь воссоздать, сохраняя глобальный объект соединения. Вместо этого используйте оператор Using вокруг ваших команд Sql
Using sqlCon = New SqlConnection(......)
If DataGridView1.Rows.Count > 0 Then
Dim command As New Data.SqlClient.SqlCommand
command.Connection = sqlCon
..... the previous code....
End If
End Using
Оператор using поможет вам закрыть и удалить соединение, в то время как пул соединений удаляет служебную информацию, необходимую для повторного подключения к той же базе данных с той же строкой соединения.