-1
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;
}

このコードを実行すると、1つのデータ項目しか取得できませんが、SQLクエリを実行すると、ランダムに3つのデータ項目を取得できます。

4

1 に答える 1

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;
}
于 2012-07-12T14:45:23.137 に答える