if(myreader.Read())
{m.memberid=myreader.GetString(0);
m.realname=myreader.GetString(2);}

解决方案 »

  1.   

    为什么要根据异常来判断是否拥有记录呢?
    为什么不用
    if(myreader.read())来判断?
      

  2.   

    用while或是if吧
    ps:楼主的数据库的password很有个性
      

  3.   

    不瞒您说,我不知道可以用READ。
    谢谢。
    但是我联想到如果是>1条记录,它赋值是重第一条开始的?
    怎么循环呢
      

  4.   

    我试试,但是如果没有记录执行什么呢你可以这样写
    public memberdetails login(string username,string password)
    {
    string strconn="server=(local),database=shopping,uid=sa,pwd=wantgirl";
    SqlConnection conn=new SqlConnection(strconn);
    SqlCommand mycommand=new SqlCommand("select * from member where name='"+username+"' and password='"+password+"'",conn);

    memberdetails m=null;
    try
    {
    conn.Open();
    SqlDataReader myreader=mycommand.ExecuteReader();
                                       if(myreader.read())
                                           

                                           m = new memberdetails();
                                          m.memberid=myreader.GetString(0);
    m.realname=myreader.GetString(2);
    }
    return m;
    }
    catch (SqlException)
    {
    return null;

    }
                               finally
                               {
                                  conn.Close();
                                } }这样当你返回null的时候,就是没有匹配成功
      

  5.   

    ("select * from member where name='"+username+"' and password='"+password+"'"
    这样写对吗
      

  6.   

    brightheroes,用你写的代码提示如下错误
    c:\inetpub\wwwroot\sell\components\member.cs(61): “sell.components.member.login(string, string)” : 并非所有的代码路径都返回值
      

  7.   

    增加了else后执行login.aspx未将对象引用设置到对象的实例。源错误: 
    行 36:  //sell.components.memberdetails mydetails=new sell.components.memberdetails();
    行 37:  mydetails=obj.login(tname.Text,tpassword.Text);
    行 38:  if(mydetails.memberid!="0")
    行 39:  {
    行 40:  //Response.Cookies["memberid"].Value=y;