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项数据。
答案 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;
}