从数据库
问题描述:
返回多行我使用下面的方法在Web服务返回一组数据 -从数据库
int T = 0;
res.rows = new users[1];
int cnt = 0;
while (reader.Read())
{
if (T == 0)
{
res.rows[T] = new users();
res.rows[T].age = (String)reader["age"];
res.rows[T].height = (String)reader["height"];
T = T + 1;
}
cnt = cnt + 1;
}
return res;
我当前已设计了这个返回一行数据,这里设置res.rows = new users[1];
然后j==0
然后带回第一行数据。
我的问题是我怎么能修改这个带回多个/所有的数据行? 在此先感谢。
答
试图保持在你的代码会是这样的改变最小,
int T = 0;
res.rows = new List<User>();
int cnt = 0;
while (reader.Read())
{
//if (T == 0)
{
User u =new users();
res.rows.Add(u);
res.rows[T].age = (String)reader["age"];
res.rows[T].height = (String)reader["height"];
T = T + 1;
}
cnt = cnt + 1;
}
return res;
+0
作品一个善良的好人 – Ebikeneser 2012-04-20 12:17:25
答
public class User
{
private string m_Age;
private string m_Height;
public User() { }
public string Age
{
get { return m_Age; }
set { m_Age = value; }
}
public string Height
{
get { return m_Height; }
set { m_Height = value; }
}
}
var rows = new List<User>();
while (reader.Read())
{
var row = new User();
row.Age = reader["age"];
row.Height = reader["height"];
rows.Add(row);
}
res.rows = rows; //if the res.rows property is an array then you can change this line to res.rows = rows.ToArray();
return res;
+0
感谢您的输入+1 – Ebikeneser 2012-04-20 12:19:32
什么类型的对象都是资源和用户? – 2012-04-17 13:21:38
他们都是结构。 – Ebikeneser 2012-04-17 13:24:29
你为什么不创建一个User类并设置Age和Height属性,然后通过你的阅读器填充它们并从你的方法返回一个用户列表? – 2012-04-17 13:27:01