我无法从sql中完全检索数据?

时间:2012-07-12 14:39:14

标签: sql-server-2008 c#-4.0

public string getString()
{

  con.ConnectionString = ConnString;
  con.Open();
  string sp = "select top 3 hotelid from hotel order by NEWID()";
  SqlCommand cmd = new SqlCommand(sp, con);

  SqlDataAdapter sa = new SqlDataAdapter(cmd);
  cmd.ExecuteNonQuery();
  reader = cmd.ExecuteReader();
  while (reader.Read()) //Call Read to move to next record returned by SQL //OR call --While(reader.Read()) 
  {
    det  = reader[0].ToString();

  }
  reader.Close();
  con.Close();
  return det;
}

当我执行此代码时,我只能检索单个数据项? 但是当我执行SQL查询时,我能够随机检索3项数据。

1 个答案:

答案 0 :(得分:1)

您正在覆盖每个det循环上的while变量。

你需要创建一个集合并添加它,或者连接字符串(注意+=)......

det += reader[0].ToString();

<强>更新

如上所述,另一种选择是创建一个集合,类似于......

public List<string> getString()
{
  ...
  List<string> ret = new List<string>;
  while (reader.Read())
    ret.Add(reader[0].ToString());
  ...
  return ret;
}