none
如何读取以下的两个值?? RRS feed

  • 问题

  • 请问如何取得一个SQL 查询结果中的两个不同行的数据,SQL运行后的结果为
         | faceid
    -------------
    1   |  2
    -------------
    2   |  6

    string SQL = string.Format("SELECT FaceId  FROM [MYQQ.MDF].[dbo].[Users] where Id={0} or id={1]",QLogin.MyQQ,QLogin.FromQQ);
                SqlCommand comm = new SqlCommand(SQL, DBhelper.conn);
                DBhelper.conn.Open();
                SqlDataReader reader = comm.ExecuteReader();
                if (reader.Read())
                {
    /*根据两个不同的值得不到不同的图片下标
    ToPic.Image = Qpic.Images[(int)reader[0]]; FromPic.Image = Qpic.Images[(int)reader[1]];
    */ reader.Close(); } DBhelper.conn.Close();
    2009年10月7日 3:44

答案

全部回复

  • 您好,类似如下,请参考:
    //因为您的select语法中只有一个字段FaceId,故是个循环,把if改为while。然后没有reader[1]。
                while(reader.Read())
                {

                    if(reader[0] != null && (int)reader[0] == 2)
                    {
                         ToPic.Image = Qpic.Images[(int)reader[0]];
                    }
                    if(reader[0] != null && (int)reader[0] == 6)
                    {
                            FromPic.Image = Qpic.Images[(int)reader[0]];
                    }
                }
                    reader.Close();

    2009年10月7日 5:02
  • int i = 0;
    while(reader.Read())
    {
    if(i ==0) ToPic.Image = Qpic.Images[(int)reader[0]];
    if(i == 1) FromPic.Image = Qpic.Images[(int)reader[0]];
    i++;
    }
    【孟子E章】
    2009年10月7日 8:59
    版主
  • 您好,类似如下,请参考:
    //因为您的select语法中只有一个字段FaceId,故是个循环,把if改为while。然后没有reader[1]。
                while(reader.Read())
                {

                    if(reader[0] != null && (int)reader[0] == 2)
                    {
                         ToPic.Image = Qpic.Images[(int)reader[0]];
                    }
                    if(reader[0] != null && (int)reader[0] == 6)
                    {
                            FromPic.Image = Qpic.Images[(int)reader[0]];
                    }
                }
                    reader.Close();


    谢谢你..但是我查询出来的值是2和6,但是下次再查询就不一定了..2 / 6的值是跟MYQQ 和 FROMQQ改变而改变的..
    2009年10月8日 17:31
  • 不客气,我写2和6的判断只不过是为了提醒这里需要做判断,因为这里有两个不同的对象需要处理。
    也不见得第一行记录就是为ToPic.Image赋值,第二行就为FromPic.Image赋值。如果记录中有第三行怎么办?
    本问题的主要疑难所在是分辨清楚reader怎么用来读出多条记录的!
    2009年10月9日 2:29