DataRow.Delete()引發System.ArgumentOutOfRangeException:“索引超出范圍。必須為非負值并小于集合大小。 Arg_ParamName_Name”代碼如下:
private void DeleteTingRow(object sender, DataGridViewRowCancelEventArgs e)
{
purchasedata.Rows[e.Row.Index].Delete();
}
delete值后這里引發索引超出范圍例外百思不解
AlertPurchaseInfo alertPurchaseInfo = new AlertPurchaseInfo();
AlertPurchaseInfo.purchasenumber = purchasenumber;
alertPurchaseInfo.ShowDialog();
打開模態框拋例外?????希望大佬們看看 指點一下
uj5u.com熱心網友回復:
private void DeleteTingRow(object sender, DataGridViewRowCancelEventArgs e){
if(e.Row.Index>-1)
{
purchasedata.Rows[e.Row.Index].Delete();
}
}
uj5u.com熱心網友回復:
e.Row.Index 的值不小于零一樣報例外
uj5u.com熱心網友回復:
建議把e.Row.Index和purchasedata.Rows的個數列印出來易于發現問題
uj5u.com熱心網友回復:
purchasedata.Rows 這里應該是空哈,是不是沒得資料源?uj5u.com熱心網友回復:
試了 也執行完delete之后 方法走完不知道為啥又到AlertPurchaseInfo alertPurchaseInfo = new AlertPurchaseInfo();
AlertPurchaseInfo.purchasenumber = purchasenumber;
alertPurchaseInfo.ShowDialog();這里然后報錯
uj5u.com熱心網友回復:
加個判斷, if(purchasedata.Rows?.count > 0)uj5u.com熱心網友回復:
delete 已執行沒問題 執行完跳出這兒方法時在打開模態框代碼處報錯,且執行完的datatable是沒有delete后的那條資料uj5u.com熱心網友回復:
alertPurchaseInfo.ShowDialog();你自己封了該方法?
uj5u.com熱心網友回復:
你這樣我們很難幫你找問題哦,這個物件是個啥都不曉得啊,而且運行到此處得值 你也發一下撒uj5u.com熱心網友回復:
你可以把整段代碼發出來,你這問題就是索引超了,7行資料,0-6轉載請註明出處,本文鏈接:https://www.uj5u.com/net/81397.html
標籤:C#
