我在ASP.NET中使用我的Web服务时遇到问题

时间:2016-06-01 03:30:38

标签: sql asp.net web-services

我已经编写了一个Web服务来访问我的SQL数据库。

[WebMethod]

    public void getRoomByBuildingID(int buildingID)
    {
        string cs = ConfigurationManager.ConnectionStrings["vetDatabase_Wizard"].ConnectionString;
        List<Room> rooms = new List<Room>();
        using (SqlConnection con = new SqlConnection(cs))
        {
            SqlCommand cmd = new SqlCommand("spGetRoomsByBuildingID", con);
            cmd.CommandType = CommandType.StoredProcedure;

            SqlParameter param = new SqlParameter()
            {
                ParameterName = "@buildingID",
                Value = buildingID
            };

            cmd.Parameters.Add(param);

            con.Open();
            SqlDataReader rdr = cmd.ExecuteReader();
            while (rdr.Read())
            {
                Room room = new Room();
                room.ID = Convert.ToInt32(rdr["ID"]);
                room.Name = rdr["Room"].ToString();
                room.buildingID = Convert.ToInt32(rdr["Building"]);
                rooms.Add(room);
            }
        }
        JavaScriptSerializer js = new JavaScriptSerializer();

        //Serialize list object into a JSON array and write in into the response stream
        Context.Response.Write(js.Serialize(rooms));
    }

我在

处不断收到indexOutOfRangeException
room.building = Convert.ToInt32(rdr["Building"]);

我一直在看我的sql表,列名和类型是正确的(即ID,Room,Building)。在这一点上我完全无能为力,非常感谢社区的反馈。谢谢!

编辑:

ALTER PROCEDURE spGetRoomsByBuildingID 
@buildingID int
AS
BEGIN
    SELECT ID, Room, Building FROM tblRooms
    WHERE Building = @buildingID
END
EXEC spGetRoomsByBuildingID

0 个答案:

没有答案
相关问题