| 网站首页 | 业界新闻 | 小组 | 威客 | 人才 | 下载频道 | 博客 | 代码贴 | 在线编程 | 编程论坛
欢迎加入我们,一同切磋技术
用户名:   
 
密 码:  
共有 2451 人关注过本帖
标题:未处理的ArgumentOutOfRangeException的错误 求大神助攻
只看楼主 加入收藏
浪里白条111
Rank: 1
等 级:新手上路
帖 子:6
专家分:0
注 册:2017-4-12
结帖率:0
收藏
已结贴  问题点数:10 回复次数:3 
未处理的ArgumentOutOfRangeException的错误 求大神助攻
private void Form3_Load(object sender, EventArgs e)
        {
            int flagNum = 0;
            string StrDataSetName = "";
            flagNum = (this.mainform.cmbLayerName.Text.IndexOf("@"));
            StrDataSetName = this.mainform.cmbLayerName.Text.Substring(0, flagNum);
            this.lblDataSetName.Text = StrDataSetName;

            soLayers layers = this.mainform.axSuperMap1.Layers;
            soLayer layer = layers[mainform.cmbLayerName.Text];
            soDataset objDt = layer.Dataset;
            objDt = layer.Dataset;
            soDatasetVector objDtv = (soDatasetVector)objDt;
            soRecordset objRd = objDtv.Query("", true, null, "");
            axSuperGridView1.Connect(objRd);
            axSuperGridView1.Update();

            //提取记录数目和字段值和数据集类型
            lblDataSetType.Text = objDt.Type.ToString();
            lblFieldCount.Text = objRd.FieldCount.ToString();
            lblRecordCount.Text = objRd.RecordCount.ToString();

            Marshal.ReleaseComObject(layers);
            layers = null;
            Marshal.ReleaseComObject(layer);
            layer = null;
            Marshal.ReleaseComObject(objDt);
            objDt = null;
            Marshal.ReleaseComObject(objDtv);
            objDtv = null;
            Marshal.ReleaseComObject(objRd);
            objRd = null;
        }
StrDataSetName = this.mainform.cmbLayerName.Text.Substring(0, flagNum);显示“System.ArgumentOutOfRangeException”类型的未经处理的异常在 mscorlib.dll 中发生 其他信息: 长度不能小于 0。的未处理的ArgumentOutOfRangeException的错误求大神解决
2017-04-12 21:47
yhlvht
Rank: 13Rank: 13Rank: 13Rank: 13
等 级:贵宾
威 望:36
帖 子:707
专家分:4405
注 册:2011-9-30
收藏
得分:10 
这个错误看起来应该是this.mainform.cmbLayerName.Text这个字符串中并不包含"@"字符,所以得到的flagNum值为-1
接着这句this.mainform.cmbLayerName.Text.Substring(0, flagNum) 相当于 this.mainform.cmbLayerName.Text.Substring(0, -1);当然会报错
2017-04-13 21:16
浪里白条111
Rank: 1
等 级:新手上路
帖 子:6
专家分:0
注 册:2017-4-12
收藏
得分:0 
那我是不是应该判断下?
2017-04-14 19:26
yhlvht
Rank: 13Rank: 13Rank: 13Rank: 13
等 级:贵宾
威 望:36
帖 子:707
专家分:4405
注 册:2011-9-30
收藏
得分:0 
当然要判断啊
2017-04-14 20:42
快速回复:未处理的ArgumentOutOfRangeException的错误 求大神助攻
数据加载中...
 
   



关于我们 | 广告合作 | 编程中国 | 清除Cookies | TOP | 手机版

编程中国 版权所有,并保留所有权利。
Powered by Discuz, Processed in 0.017757 second(s), 8 queries.
Copyright©2004-2024, BCCN.NET, All Rights Reserved