索引超出数组界限,这句老是报错索引超出数组界限是咋回事啊????求大神解答

int rowIndex = ((DataTable)SQLiteDBHelper.BindingSource.DataSource).Rows.IndexOf(((DataTable)SQLiteDBHelper.BindingSource.DataSource).Select("Su编号=" + suid)[0]);
这句老是报错索引超出数组界限是咋回事啊????这句老是报错索引超出数组界限是咋回事啊????求大神解答!!!在线等!!急啊!!!!!!!!!!!!!

5个回答

打断点调试,看看是不是数组为空,或者你指定的索引比数组的长度大。

你的代码也没发全。

gsky1986
foreach_break 回复sinat_27761449: 那也得数组有元素啊!打断点看看select出东西了没有!
5 年多之前 回复
sinat_27761449
sinat_27761449 我又贴了代码,这样可以看出问题吗
5 年多之前 回复
sinat_27761449
sinat_27761449 可是那个就只是数组的第0个元素啊,不可能超出界限啊
5 年多之前 回复

首先你自己先确定一下select后有没有数据,没有的话,肯定报错

sinat_27761449
sinat_27761449 这个咋确定呢
5 年多之前 回复

else if(suid!="-1")
{
int rowIndex = ((DataTable)SQLiteDBHelper.BindingSource.DataSource).Rows.IndexOf(((DataTable)SQLiteDBHelper.BindingSource.DataSource).Select("Su编号=" + suid)[0]);

                if(rowIndex<0)
                    return;

                if (correct)//正确数据包
                {
                    dgvSuConfig.Rows[rowIndex].Cells[4].Value = Convert.ToInt32(dgvSuConfig.Rows[rowIndex].Cells[4].Value) + 1;
                    lbRecvCorrectNum.Text = (Convert.ToInt32(lbRecvCorrectNum.Text) + 1).ToString();

((DataTable)SQLiteDBHelper.BindingSource.DataSource).Select("Su编号=" + suid)取值前,先判断是否有值,再取

代码写成这样看起来多费劲啊

Csdn user default icon
上传中...
上传图片
插入图片
抄袭、复制答案,以达到刷声望分或其他目的的行为,在CSDN问答是严格禁止的,一经发现立刻封号。是时候展现真正的技术了!
立即提问
相关内容推荐