通过循环将记录从datagridview插入sql表时出错

通过循环将记录从datagridview插入sql表时出错,sql,vb.net,datagridview,Sql,Vb.net,Datagridview,每当我试图从datagridview插入记录时,它都会显示以下消息。 “索引超出了数组的边界。” //那么如何控制循环索引呢。代码如下 cmd = New SqlCommand("INSERT INTO TestTable VALUES (@Name, @Name1, @fname,@fname1)", cn) Dim InsertCommands() = {"@name", "@name1", "@fname", "@fname1"} Dim InsertCommandsInd

每当我试图从datagridview插入记录时,它都会显示以下消息。 “索引超出了数组的边界。”

//那么如何控制循环索引呢。代码如下

cmd = New SqlCommand("INSERT INTO TestTable VALUES (@Name, @Name1, @fname,@fname1)", cn)
    Dim InsertCommands() = {"@name", "@name1", "@fname", "@fname1"}
    Dim InsertCommandsIndex As Integer = 0

    For col = 0 To DataGridView1.ColumnCount - 1
        For row = 0 To DataGridView1.RowCount - 1
            cmd.Parameters.AddWithValue(InsertCommands(InsertCommandsIndex), DataGridView1.Rows(row).Cells(col).Value)
            InsertCommandsIndex += 1
        Next
    Next
    cmd.ExecuteNonQuery()

    MessageBox.Show("New Record Saved Successfully!", "Save", MessageBoxButtons.OK, MessageBoxIcon.Information)

End Sub

如果DGV的
allowUserToAddress
为true(默认值),则可能是迭代了太多行
For col As Integer = 0 To DataGridView1.ColumnCount - 1
        InsertCommandsIndex = 0
        For row As Integer = 0 To DataGridView1.RowCount - 1
            cmd.Parameters.AddWithValue(InsertCommands(InsertCommandsIndex), DataGridView1.Rows(row).Cells(col).Value)
            InsertCommandsIndex += 1
        Next
    Next