| 编程中国 | 业界新闻 | 技术文章 | 视频教程 | 下载频道 | 程序源码 | 个人空间 | 编程论坛
全能ASP/PHP/ASP.NET主机,支持月付专业 MSSQL 数据库空间,支持月付专业 MySQL 数据库空间,支持月付学习型 ASP/PHP/ASP.NET 主机 30元/年
高端软件开发 = 年薪十万不是梦赛孚耐:软件保护加密专家身份认证令牌USB KEY 
共有 752 人关注过本帖
标题:[求助]在DGV中拋出异常"索引0沒有值"
收藏  订阅  推荐  打印 
C_B_Lu
Rank: 3Rank: 3
等级:中级会员
威望:1
帖子:453
积分:4918
注册:2006-1-10
[求助]在DGV中拋出异常"索引0沒有值"

我的DGV的數据源是一個BindingSource對象,當我用Filter篩選數据,當篩選的結果為空(即沒有滿足Filter中條件的記錄)時,就會拋出一個异常,"索引0沒有值",該怎么解決?
搜索更多相关主题的帖子: 索引  DGV  Filter  解決  
2007-10-5 15:00
C_B_Lu
Rank: 3Rank: 3
等级:中级会员
威望:1
帖子:453
积分:4918
注册:2006-1-10

本想嘗試在DGV的DataError事件中寫一些代碼,但真不知該怎么處理....


自已再頂一下,


帮助那些真正需要帮助的人,是对帮助你的人最好的回报!
2007-10-5 16:30
C_B_Lu
Rank: 3Rank: 3
等级:中级会员
威望:1
帖子:453
积分:4918
注册:2006-1-10

問題仍然存在,現附上我的刪除代碼及錯誤圖片.

private void tsbDelete_Click(object sender, EventArgs e)
{
if (dgvQuotationList.Rows.Count == 0)
{
MessageBox.Show("沒有可刪除的記錄!", "錯誤", MessageBoxButtons.OK, MessageBoxIcon.Error);
return;
}
if (DialogResult.No == MessageBox.Show("确定要刪除料號為[ " + tbPartID.Text.Trim() + " ]的料件單价資料嗎?", "詢問", MessageBoxButtons.YesNo, MessageBoxIcon.Question))
{
return;
}
string strSupplierID = tbSupplierID.Text.Trim();
string strPartID = tbPartID.Text.Trim();
string strMsg = "";
SqlCommand cmd = new SqlCommand();
try
{
if (conn.State != ConnectionState.Open)
{
conn.Open();
}
cmd.Connection = conn;
cmd.CommandText = "Quotation_Delete";
cmd.CommandType = CommandType.StoredProcedure;
cmd.Parameters.Add("@supplierID", SqlDbType.VarChar, 5);
cmd.Parameters.Add("@partID", SqlDbType.VarChar, 18);
cmd.Parameters.Add("@errorMsg", SqlDbType.VarChar, 200);
cmd.Parameters["@supplierID"].Value = strSupplierID;
cmd.Parameters["@partID"].Value = strPartID;
cmd.Parameters["@errorMsg"].Direction = ParameterDirection.Output;
if (cmd.ExecuteNonQuery() >0)
{
bsQuotationList.RemoveCurrent();
bsQuotationList.EndEdit();
currentState = state.Browse;
ctlState();
}
}
catch
{
strMsg = cmd.Parameters["@errorMsg"].Value.ToString().Trim();
MessageBox.Show(strMsg, "錯誤", MessageBoxButtons.OK, MessageBoxIcon.Error);
}
finally
{
if (conn.State != ConnectionState.Closed)
{
conn.Close();
}
}
}
附件: 只有本站会员才能下载或查看附件,请您 登录注册

帮助那些真正需要帮助的人,是对帮助你的人最好的回报!
2007-10-8 09:48
jacklee
Rank: 12Rank: 12Rank: 12
来自:宏杰技术
等级:贵宾
威望:32
帖子:1743
积分:18396
注册:2006-11-3

用TRY去除掉你的错误吧

佛山宏杰技术!
2007-10-8 09:53
C_B_Lu
Rank: 3Rank: 3
等级:中级会员
威望:1
帖子:453
积分:4918
注册:2006-1-10

以下是引用jacklee在2007-10-8 9:53:28的发言:
用TRY去除掉你的错误吧

在執行我上面的代碼時,并沒有任何以异當,了沒有執行catch塊的內容,只有勢執行完最后一個"}"后,才會彈出錯誤提示,所以我跟蹤了沒找出原因.


帮助那些真正需要帮助的人,是对帮助你的人最好的回报!
2007-10-8 16:16
jacklee
Rank: 12Rank: 12Rank: 12
来自:宏杰技术
等级:贵宾
威望:32
帖子:1743
积分:18396
注册:2006-11-3

strMsg = cmd.Parameters["@errorMsg"].Value.ToString().Trim();
MessageBox.Show(strMsg, "錯誤", MessageBoxButtons.OK, MessageBoxIcon.Error);
上面两句改写成MSGBOX("KK");
还会不会有错?不妨试一下!

佛山宏杰技术!
2007-10-8 16:43
C_B_Lu
Rank: 3Rank: 3
等级:中级会员
威望:1
帖子:453
积分:4918
注册:2006-1-10

以下是引用jacklee在2007-10-8 16:43:10的发言:
strMsg = cmd.Parameters["@errorMsg"].Value.ToString().Trim();
MessageBox.Show(strMsg, "錯誤", MessageBoxButtons.OK, MessageBoxIcon.Error);
上面两句改写成MSGBOX("KK");
还会不会有错?不妨试一下!

問題仍然存在, 因為catch塊中的代碼根本就不會被運行.
try中的操作能順利完成,并且記錄也能順利刪除. 只是在刪除最后一條記錄時,DGV才會在運行完上面代碼中的最后一個"}"后報錯.


帮助那些真正需要帮助的人,是对帮助你的人最好的回报!
2007-10-9 08:29
crazymk
Rank: 3Rank: 3
等级:中级会员
威望:1
帖子:343
积分:3530
注册:2007-8-30

DGV控件自身不允許空索引。有可能是刪除的時候刪除了所有行數據產生的問題。
不知道在刪除以後給它一個空白行(或者重新綁定)可不可以。

[此贴子已经被作者于2007-10-9 12:29:33编辑过]


すばらしいコードを書き出すのは楽しい事です
2007-10-9 12:26
bygg
Rank: 12Rank: 12Rank: 12
来自:乖乖的心中
等级:版主
威望:170
帖子:9765
积分:97351
注册:2006-10-23

判断行是否这空

一个天才顶不上十个笨蛋!
书山有路勤为径,学海无涯友相伴。
我的E-mail:mylover624@yahoo.com.cn
2007-10-9 12:38
C_B_Lu
Rank: 3Rank: 3
等级:中级会员
威望:1
帖子:453
积分:4918
注册:2006-1-10

另外,因為我的DGV綁定的是BindingSource,如果我使用Filter屬性來篩選記錄,如果篩選后的結果中為0行記錄,則為出現同樣的情況,第一個DGV的RowErrorText中都會有類似的錯誤提示,
例如,如果原先DGV中有5筆記錄,則篩選后,每行的錯誤文本分別為:
"索引0沒有值","索引1沒有值","索引2沒有值","索引3沒有值","索引4沒有值".......

根蹤后發生,DGV中的Rows.Count行為5, 而BindingSource中的Count為0

但是如果原DGV中有5筆記錄,而我篩選后的結果中在有3條記錄,則DGV中的Rows.Count值為3,BindingSource中的Count值為3.不會出錯.

[此贴子已经被作者于2007-10-9 14:38:11编辑过]


帮助那些真正需要帮助的人,是对帮助你的人最好的回报!
2007-10-9 14:17
关于我们 | 广告合作 | 编程中国 | 清除Cookies | Archiver | WAP | TOP

编程中国 版权所有,并保留所有权利。鲁ICP备08000592号
Powered by Discuz, Processed in 0.158511 second(s), 9 queries.
Copyright©2004-2008, BCCN.NET, All Rights Reserved