public int GetMidByMemberName(string name)
        {
            string sql = "select * from member where MemberName like '%" + name + "%'";
            return ((Member)this.GetMembersBySql(sql)[0]).Mid;
        }
就这段代码出的问题
 具体是怎么回事啊
怎么解决啊???
高手来啊啊啊!1

解决方案 »

  1.   

    你定义的是INT 你却返回数组当然错误
      

  2.   

    GetMembersBySql(sql)方法返回什么? 估计返回的null,所以出这个错误
      

  3.   

    GetMembersBySql(sql)你这个方法估计是一条记录都没有查到,而你直接用GetMembersBySql(sql)[0]获取第1个结果当然报错
      

  4.   

    这段代码
    return ((Member)this.GetMembersBySql(sql)[0]).Mid;
    你确定this.GetMembersBySql(sql)这个能查出数据吗? 打印出来看看里面是否有数据
      

  5.   

    ((Member)this.GetMembersBySql(sql)[0]).Mid;
    Mid属性 的类型应该是int型吧
      

  6.   

    调式一下 this.GetMembersBySql(sql)的length是否大于0
      

  7.   

    没找到记录,跟踪下,取出当时的sql内容,在查询分析器中执行下看看及有没有数据
      

  8.   

       public int GetMidByMemberName(string name)
            {
                string sql = "select * from member where MemberName like '%" + name + "%'";
                return ((Member)this.GetMembersBySql(sql)[0]).Mid;
            }private IList<Member> GetMembersBySql(string safeSql)
            {
                DBHelper dbh = new DBHelper();
                List<Member> list = new List<Member>();            try
                {
                    DataTable table = dbh.GetDataSet(safeSql);                foreach (DataRow row in table.Rows)
                    {
                        Member member = new Member();                    member.Mid = (int)row["Mid"];
                        member.MemberName = row["MemberName"].ToString();
                        member.MemberLoginId = row["MemberLoginId"].ToString();
                        member.MemberPass = row["MemberPass"].ToString();
                        member.MemberMail = row["MemberMail"].ToString();
                        member.MemberSex = row["MemberSex"].ToString();
                        member.MemberCrodId = row["MemberCrodId"].ToString();
                        member.MemberPhone = row["MemberPhone"].ToString();
                        member.MemberQQ = (int)row["MemberQQ"];
                        member.MemberMsn = row["MemberMsn"].ToString();
                        member.MemberShuoMing = row["MemberShuoMing"].ToString();
                        member.MemberType = (int)row["MemberType"];
                        member.Memberphoto = row["MemberPhoto"].ToString();
                        member.Zhuchetime = Convert.ToDateTime(row["Zhuchetime"]);
                        member.Blog_KT = Convert.ToBoolean(row["Blog_KT"]);                    list.Add(member);
                    }                return list;
                }
                catch (Exception e)
                {
                    Console.WriteLine(e.Message);
                    throw e;
                }        }
      

  9.   

    this.GetMembersBySql(sql)是否counr>0
    Member对象是否 为 null
      

  10.   

    DataTable table = dbh.GetDataSet(safeSql);
    table没有数据吧
    用sqlDataReader读取更好
      

  11.   

     list.Add(member);
      }  return list;
      }
      catch (Exception e)
      {
      Console.WriteLine(e.Message);
      throw e;
      }
    ------改成:
     list.Add(member);
      }  
      }
      catch (Exception e)
      {
      Console.WriteLine(e.Message);
      throw e;
      }
      finally
      {
      return list;
      }断点调试,看看返回的list.Count为多少?return ((Member)this.GetMembersBySql(sql)[0]).Mid;
    这个改成:
    List<Member> list = this.GetMembersBySql(sql);
    if(list.Count != 0)
      return ((Member)list[0]).Mid;
    else
      return 0; //如果没有结果,返回的默认值
      

  12.   

    list  =0   我有数据啊