c# - 返回网络服务中的最后一行

标签 c# sql web-services

我正在尝试使用网络服务获取我所有的表记录。我试过这个:

         public class Student
    {
        public int id;
        public string name;
        public string grade;
    }
 [WebMethod]
    public Student[] getall()
    {
        Student objStd = new Student();
        Student[] stds = new Student[400];


        SqlConnection conn;
        conn = Class1.ConnectionManager.GetConnection();
        conn.Open();

        SqlCommand newCmd = conn.CreateCommand();

        newCmd.CommandType = CommandType.Text;
        newCmd.CommandText = "select * from dbo.tblUser";
        SqlDataReader sdr = newCmd.ExecuteReader();

        for (int runs = 0; sdr.Read(); runs++)
        {
            objStd.id = Int32.Parse(sdr["Id"].ToString());
            objStd.name = sdr["name"].ToString();
            objStd.grade = sdr["grade"].ToString();
            stds[runs] = objStd;
        }
        conn.Close();
        sdr.Close();
        return stds;
    }

但是这样的结果是这样的:

 <?xml version="1.0" encoding="UTF-8"?>

  <ArrayOfStudent xmlns="http://tempuri.org/" xmlns:xsd="http://www.w3.org/2001/XMLSchema" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">
 -<Student>
 <id>8</id>
 <name>hhhhh</name>
 <grade>76</grade>
 </Student>
 -<Student>
 <id>8</id>
 <name>hhhhh</name>
 <grade>76</grade>
 </Student>
 -<Student>
 <id>8</id>
 <name>hhhhh</name>
 <grade>76</grade>
 </Student>
 -<Student>
 <id>8</id>
 <name>hhhhh</name>
 <grade>76</grade>
 </Student>
  ....

这将一次又一次地只返回最后一条记录,为什么?

我应该在我的代码中更正什么?

最佳答案

制作一个 List 添加到其中并返回,现在您只返回最后一个对象。

在 For 循环中创建 Student 对象实例

 List<Student> stds = new List<Student>();
 for (int runs = 0; sdr.Read(); runs++)
        {
            Student objStd = new Student();
            objStd.id = Int32.Parse(sdr["Id"].ToString());
            objStd.name = sdr["name"].ToString();
            objStd.grade = sdr["grade"].ToString();
            stds.Add(objStd);
        }

关于c# - 返回网络服务中的最后一行,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/33970532/

相关文章:

web-services - 任何可用于 sharepoint 项目级别权限的 Web 服务?

.net - 弃用 WCF 服务的最佳实践

c# - 什么是文本编辑器选项下的新 C#_LSP 条目?

c# - 安卓进度条消失

c# - NServiceBus 异常和订阅者无法读取队列

sql - 双表问题

mysql - 当两行的值相同并且一行匹配两个不同的行时,使用 WHERE 条件的 SQL JOIN

.NET 3.5 中的 C# 不序列化 Java Web 服务公开的 ENUM

c# - 无需端口转发的 UDP/TCP 发送和接收

c# - 如何阻止 EntityFramework 获取所有行