dr["scompanyname"] = dt_DWML.Select("scompanycode='" + arrSrcComp[i] + "'")[0]["scompanyname"].ToString();
为啥这句老显示数组越界呢?
还有就是根据表的编码查询对应的名称语句不是这样写吗?
各位大鸟们帮下忙撒!!!

解决方案 »

  1.   

    dt_DWML.Select("scompanycode='" + arrSrcComp[i] + "'")
    你这个得到的是0条记录,所以后面[0]取第一条数据肯定提示越界
      

  2.   

    dt_DWML.Select("scompanycode='" + arrSrcComp[i] + "'")
    这个很有可能为null
      

  3.   

    要先判断下dt_DWML.Select()的结果(即Count > 0) 再去取值,否则直接取[0]在Count=0时肯定会报数组越界的异常的
      

  4.   

    //001;002;003
                    string[] arrSrcComp = sSrcComp.Split(new Char[] { ';'});                                
                    for (int i = 0; i < arrSrcComp.Length; i++)
                    {
                        DataRow dr = dt_SrcComp.NewRow();
                        dr["scompanycode"] = arrSrcComp[i];
                        dr["scompanyname"] = dt_DWML.Select("scompanycode='" + arrSrcComp[i] + "'")[0]["scompanyname"].ToString();                    
                        dt_SrcComp.Rows.Add(dr);
    源代码是这样的,我就是想获得对应单位编码的单位名称
      

  5.   

     这是那方法:
    错误信息:;索引超出了数组界限。
    private void cmb_HZFA_SelectedIndexChanged(object sender, EventArgs e)
            {
                    string sSrcComp = dt_HZFA.Rows[cmb_HZFA.SelectedIndex]["SSRCCOMPCODE"].ToString();
                    string sDesComp = dt_HZFA.Rows[cmb_HZFA.SelectedIndex]["SDESCOMPCODE"].ToString();
                    this.UIP.FrameManager.ShowInformation("xx", sSrcComp + "||" + sDesComp);               
                    reloadSrcComp(sSrcComp);
                    reloadDesComp(sDesComp);        
            }        private void reloadSrcComp(string sSrcComp)
            {           
                this.Grid_SrcCom.Clear();
                this.dt_SrcComp = this.dt_DWML.Clone();
                this.Grid_SrcCom.DataSource = dt_SrcComp;
                if (sSrcComp.Trim() != "")
                {
                    //001;002;4LZTLJ000
                    string[] arrSrcComp = sSrcComp.Split(new Char[] { ';'});                                
                    for (int i = 0; i < arrSrcComp.Length; i++)
                    {
                        DataRow dr = dt_SrcComp.NewRow();
                        dr["scompanycode"] = arrSrcComp[i];
                        dr["scompanyname"] = dt_DWML.Select("scompanycode='" + arrSrcComp[i] + "'")[i]["scompanyname"].ToString();                    
                        dt_SrcComp.Rows.Add(dr);
                        Grid_SrcCom.Cols["scompanycode"].Caption = "单位编码";
                        Grid_SrcCom.Cols["scompanycode"].Width = 120;
                        Grid_SrcCom.Cols["scompanyname"].Caption = "单位名称";
                        Grid_SrcCom.Cols["scompanyname"].Width = 250;
                    }                              
                }           
            }        private void reloadDesComp(string sDesComp)
            {
                this.Grid_DesCom.Clear();
                this.dt_DesComp = this.dt_DWML.Clone();
                this.Grid_DesCom.DataSource = dt_DesComp;
                if (sDesComp.Trim() != "")
                {
                        //hz1                           
                        DataRow dr = dt_DesComp.NewRow();                                                   
                        dr["scompanycode"] = sDesComp;
                        dr["scompanyname"] = dt_DWML.Select("scompanycode='" + sDesComp + "'")[0]["scompanyname"].ToString();                                        
                        dt_DesComp.Rows.Add(dr);
                        Grid_DesCom.Cols["scompanycode"].Caption = "单位编码";
                        Grid_DesCom.Cols["scompanycode"].Width = 120;
                        Grid_DesCom.Cols["scompanyname"].Caption = "单位名称";
                        Grid_DesCom.Cols["scompanyname"].Width = 250;
                }           
            }
      

  6.   

    就是dr["scompanyname"] = dt_DWML.Select("scompanycode='" + arrSrcComp[i] + "'")[i]["scompanyname"].ToString(); 的提示
      

  7.   

    if(arrSrcComp.Length>i)
    dr["scompanyname"] = dt_DWML.Select("scompanycode='" + arrSrcComp[i] + "'")[0]["scompanyname"].ToString();
    dt_DWML.Select("scompanycode='" + arrSrcComp[i] + "'")[0]是否为null
      

  8.   

    你最好分开写好一点:
    dr["scompanyname"] = dt_DWML.Select("scompanycode='" + arrSrcComp[i] + "'")[0]["scompanyname"].ToString();改成:DataRow[] result = dt_DWML.Select("scompanycode='" + arrSrcComp[i] + "'");
    if(result!=null && result.Length>0) //做匹配结果判断
      dr["scompanyname"] = result[0]["scompanyname"];
    else
      dr["scompanyname" = string.Empty;
      

  9.   


     dr["scompanyname" = string.Empty;少了一个"]"
      

  10.   

    if(!isnullorempty("string"))
    {
    }