0
这里是我的服务代码:WCF SqlDataReader的总是返回最后一行次数的所有行的
public List<Person> GetPersons()
{
string connstr = "Data Source=XXXXXX-PC;Initial Catalog=Database;Integrated Security=True";
using (SqlConnection con = new SqlConnection(connstr))
{
SqlCommand cmd = new SqlCommand("GetPersons", con);
cmd.CommandType = CommandType.StoredProcedure;
con.Open();
SqlDataReader data = cmd.ExecuteReader();
List<Person> persons = new List<Person>();
Person one = new Person();
if (data.HasRows)
{
while(data.Read())
{
one.id = data.GetInt32(data.GetOrdinal("ID"));
one.name = data.GetString(data.GetOrdinal("Name"));
one.surname = data.GetString(data.GetOrdinal("Surname"));
one.fathername = data.GetString(data.GetOrdinal("FatherName"));
persons.Add(one);
}
data.Close();
}
return persons;
}
}
这里是SQL Server存储过程:
SELECT
tbtp.ID, tbo.Name, tbo.Surname, ISNULL(tbo.FatherName,'unknown') FatherName
FROM
tbTechCh tbtp
JOIN
tbPersons tbo ON tbtp.PersonsID = tbo.ID
WHERE
tbtp.DateCh IS NULL
ORDER BY
tbo.Surname
这SqlDataReader
总是返回最后一个因为存储过程结果中有行,所以行数很多。我无法找到问题所在......帮助!
编辑:存储过程按预期返回数据,但此问题只出现在服务中。
你调试过程序了吗?当你单步通过它会发生什么? – usr 2014-10-11 20:30:08
我不能单步异步调用,我需要这些,因为这是来自WP 8.1应用程序的一部分。 – 2014-10-11 20:50:34
在此方法中设置断点并逐步完成。 – usr 2014-10-11 20:52:40