DataGridView Default Error Dialog[求助]

xiangyueming 2009-12-21 01:44:56
点击DataGridView报错,提示框:DataGridView Default Error Dialog

The following exception occurred in the DataGridView
system.IndexOutOFrangeException: Index 54 does not have a value
at System.Windows.Forms.CurrencyManager.get_Item(Int32 index)
at System.Windows.Forms.DataGridView.DataGridViewDataConnection.GetError(Int32 rowIndex)
To replace this default dialog please handle the DataError event


网上找了半天没有可行的方法
...全文
637 5 打赏 收藏 转发到动态 举报
写回复
用AI写文章
5 条回复
切换为时间正序
请发表友善的回复…
发表回复
xiangyueming 2009-12-21
  • 打赏
  • 举报
回复
[Quote=引用 3 楼 lsj_zrp 的回复:]
这个一般是由于datagridview绑定了数据源,但是输入的内容与数据源的格式不一致引起的
可以在DataError的事件里面写判断
[/Quote]
datagridview我只是查看功能,不能编辑的,而且这个错误是偶尔出现的 到现在为止看到过3回了
很难重现 郁闷啊
xiangyueming 2009-12-21
  • 打赏
  • 举报
回复
dt.Clear();
DataView dv = dt.DefaultView;
int i = 1;
try
{
DirectoryInfo di = new DirectoryInfo(Common.StorePath);
FileInfo[] f = di.GetFiles();
foreach (FileInfo myFile in f)
if (dt1 < myFile.CreationTime && myFile.CreationTime < dt2)
{
if (myFile.FullName.Substring(myFile.FullName.LastIndexOf(@".") + 1).ToLower() == "tif")
{
try
{
DateTime.Parse(myFile.FullName.Substring(myFile.FullName.LastIndexOf(@"\") + 1, myFile.FullName.LastIndexOf(@".") - myFile.FullName.LastIndexOf(@"\") - 1).Replace("^", ":"));
DataRow dr = dt.NewRow();
dr["接收时间"] = myFile.FullName.Substring(myFile.FullName.LastIndexOf(@"\") + 1, myFile.FullName.LastIndexOf(@".") - myFile.FullName.LastIndexOf(@"\") - 1).Replace("^", ":");
dr["传真名称"] = myFile.FullName;
dt.Rows.Add(dr);
i++;
}
catch
{
}

}
}
}
catch (Exception ex)
{
MessageBox.Show(ex.Message, "提示", MessageBoxButtons.OK, MessageBoxIcon.Stop);
Main.main.axImgEdit1.Image = "";
Main.main.axImgEdit1.ClearDisplay();
Main.main.lbl_page.Text = "【 页码:0/0 】";
return;
}
dv.Sort = "接收时间 asc";
dt = dv.ToTable();
for (int j = 0; j < dt.Rows.Count; j++)
{
dt.Rows[j]["序号"] = (j + 1).ToString();
}
dgv_fax.DataSource = dt;
dgv_fax.Columns[0].Width = 40;
dgv_fax.Columns[1].Width = 125;
dgv_fax.Columns[2].Visible = false;
if (dgv_fax.Rows.Count > 0)
{
dgv_fax.CurrentCell = dgv_fax.Rows[dgv_fax.Rows.Count - 1].Cells[0];
}
else
{
Main.main.axImgEdit1.Image = "";
Main.main.axImgEdit1.ClearDisplay();
Main.main.lbl_page.Text = "【 页码:0/0 】";
}
lsj_zrp 2009-12-21
  • 打赏
  • 举报
回复
这个一般是由于datagridview绑定了数据源,但是输入的内容与数据源的格式不一致引起的
可以在DataError的事件里面写判断
menglingjun 2009-12-21
  • 打赏
  • 举报
回复
点击DataGridView 事件的代码粘上来看看~
xiangyueming 2009-12-21
  • 打赏
  • 举报
回复
纠结啊。。。

111,120

社区成员

发帖
与我相关
我的任务
社区描述
.NET技术 C#
社区管理员
  • C#
  • Creator Browser
  • by_封爱
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告

让您成为最强悍的C#开发者

试试用AI创作助手写篇文章吧