2014-05-08 38 views
0

每當我嘗試從datagridview中插入記錄時,它會向我顯示以下消息。 「索引超出了數組的範圍。」通過循環插入從datagridview到sql表中的記錄時出錯

//如何控制循環索引。代碼如下。

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 
+0

如果DGV有'AllowUserToAddRows'爲真(默認),你可能一個迭代太多的行 – Plutonix

回答

0
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 
相關問題