vb.net - 索引超出范围,必须为非负数且小于集合大小
问题描述
我有一个有 5 列的 datagridview1,我从 datagridview2 添加到该 gridview 项目,这没有错,现在当我尝试使用 2 面额 for 循环从 Datagridview1 获取这些值时,将其插入我的 sql db,它显示这个错误。
指数超出范围。必须是非负数且小于集合的大小。参数名称索引。
我希望我解释得很好。
Public Sub Button1_Click(sender As Object, e As EventArgs) Handles Button1.Click
Try
con.ConnectionString = "Data Source = OMAR\MSSQLSERVER01;Initial Catalog=AccountsC20;Persist Security Info=True;User ID=ofamo;"
con.Open()
cmd.Connection = con
Dim Selected = ListBox1.SelectedValue.ToString()
If Selected = "0" Then
MessageBox.Show("Make sure to select a valued product")
Else
MessageBox.Show((TextBox4.Text) + 1)
For i As Integer = 0 To DataGridView1.RowCount - 1
For j As Integer = 0 To DataGridView1.ColumnCount - 1
cmd.CommandText = "Insert into SInvoice Values('SIV-" & (TextBox4.Text) + 1 & "',0," & j + 1 & ",(select nodeno from productmast where arabic_name= '" & Selected & "')," & DataGridView1.Item(i, 2).Value & ",0.000000,'2019-04-04 13:40:00'," & DataGridView1.Item(i, 4).Value & "," & DataGridView1.Item(i, 3).Value & ",'',0,1,1,1,1,'04/04/2019 13:39:44','',1.000000,1,0,'','b',0.000000,5,0.000000," & DataGridView1.Item(i, 3).Value & ",'Nos',1.000000,'','','','','','','','','','','','','','','','','','','','','',0,3,'" & Label4.Text & "',1,1,1,1,1,1,0.000000)"
cmd.ExecuteNonQuery()
Next
Next
解决方案
你用什么方式填充你的datagridview 1或2?如果您使用的是数据表之类的东西,或者您可以使用非常轻松快速地传输到 sql 数据库sqlbulkcopy
,但我不知道您是否想要这样,或者您是否使用数据表等。
For Each row As DataGridViewRow In DataGridView1.Rows
For j = 0 To DataGridView1.Columns.Count - 1....
尝试使用 for each 循环,看看它是否有所作为
推荐阅读
- android - 测试可折叠模拟器后如何恢复手机屏幕?
- r - 在 R 中创建带有向量的 While 循环
- npm - 如何找到 NPM 包的反向 devDependency(依赖项)
- go - 为什么返回 int 的函数文字不能分配给返回 interface{} 的函数?
- c++ - 已经在 obj 中定义
- javascript - 用户将学生的成绩输入到作为文本框的输出中,然后计算最终的字母成绩
- python-2.7 - Flatten 和 Dense 层之间的矩阵大小不兼容
- javascript - 我们如何在 javascript 中添加两个事件监听器 click 和 keydown
- c# - 无论如何在单个语句中增加具有相同值的多个变量
- android - 如何在android studio中比较string.xml文件的unicode字符?