我正在尝试将PagedDataSource
分配给ExecuteReader()
,但我收到错误消息,说明需要ICollection
。
我想要它返回的所有数据,因为它将在转发器中分配。起初我刚刚将转发器分配给cmd.ExecuteReader()
并且它工作正常,现在他们想要分页,我不知道如何改变查询以生成数组。
conn.Open();
var cmd = new SqlCommand("[safetyGuidanceSearch]", conn);
cmd.CommandType = CommandType.StoredProcedure;
cmd.Parameters.AddWithValue("@iwc", inwardCode);
cmd.Parameters.AddWithValue("@owc", outwardCode);
var objPds = new PagedDataSource();
objPds.DataSource = cmd.ExecuteReader();// turn into an array
我该怎么做?
答案 0 :(得分:1)
您需要先填充数组。
var result = new List<whatevertypespreturns>();
var reader = cmd.ExecuteReader();
while(reader.Read()){
result.add(reader.GetXxxx(0);
}
objPds.DataSource = result.ToArray();
答案 1 :(得分:0)
你可以这样做
SqlDataReader dr;
DataTable dt = new DataTable();
conn.Open();
var cmd = new SqlCommand("[safetyGuidanceSearch]", conn);
cmd.CommandType = CommandType.StoredProcedure;
cmd.Parameters.AddWithValue("@iwc", inwardCode);
cmd.Parameters.AddWithValue("@owc", outwardCode);
var objPds = new PagedDataSource();
dr = cmd.ExecuteReader();// turn into an array
dt.load(dr);
现在您可以使用数据表执行您想要的操作,只需将其称为bellow
即可 objPds.DataSource = dt;