【问题标题】:A field or property name was not found in the selected data source在所选数据源中未找到字段或属性名称
【发布时间】:2013-07-29 01:00:42
【问题描述】:

我有一个从存储过程中读取的列表。它只是一个选择语句。我不知道为什么会收到错误消息“在所选数据源中找不到字段或属性名称 'Ticket ID'。”我正在做的是用我的代码和预定义的列填充 gridview。

  public List<SelectQueuedTickets> GetQueuedTickets()
    {
        List<SelectQueuedTickets> QueuedTicketsList = new List<SelectQueuedTickets>();

        using (SqlConnection con = new SqlConnection(ConfigurationManager.ConnectionStrings["ConnectionString"].ConnectionString))
        {

            using (SqlCommand com = new SqlCommand("[Reader].[usp_SelectQueuedTickets]", con))
            {
                con.Open();
                com.CommandType = CommandType.StoredProcedure;
                SqlDataReader rd = com.ExecuteReader();

               while (rd.Read())
                {
                    this.TicketID = Convert.ToString(rd["Ticket ID"]);
                    this.PriorityID = Convert.ToInt32(rd["Priority"]);
                    this.FormType = Convert.ToString(rd["Form Type"]);
                    this.Summary = Convert.ToString(rd["Summary"]);
                    this.CreationDate = Convert.ToDateTime(rd["Creation Date"]);
                    this.OwnerGroup = Convert.ToString(rd["Owner Group"]);
                    this.Owner = Convert.ToString(rd["Owner"]);
                    this.Creator = Convert.ToInt32(rd["Creator"]);
                    this.AffectedUser = Convert.ToInt32(rd["Affected User"]);
                    this.OwnerEmail = Convert.ToString(rd["Owner Email"]);
                    this.AffectedUserEmail = Convert.ToString(rd["Affected User Email"]);

                    QueuedTicketsList.Add(this);
                }
            }
        }
        return QueuedTicketsList;

    }


   protected void LoadQueuedTickets()
    {
        SelectQueuedTickets selectqueuedtickets = new SelectQueuedTickets();
        GridView1.DataSource = selectqueuedtickets.GetQueuedTickets();
        GridView1.DataBind();
    }

【问题讨论】:

  • 我假设您的问题是“为什么会出现此错误以及如何解决?”。在这种情况下,请指出您在哪一行出现错误,删除所有其他不必要的行来重现问题,最重要的是包括仍然产生问题的存储过程的精简版本。如果需要,您还应该包含一些示例数据,但我认为在这种情况下没有必要。

标签: c# asp.net oop


【解决方案1】:

您返回的内容与从存储过程返回的预期内容似乎不匹配。 我会逐个字段进行比较,以查看没有丢失或拼写错误的列名。 在 Management Studio 中运行 proc 并将其与您在代码中引用的字段进行比较

【讨论】:

  • 我在 SQL 中的列被命名为“fld_Fname as First Name”。这是不匹配吗?
  • 您只需要担心您在代码中引用的列。从存储过程返回的额外列无关紧要
猜你喜欢
  • 2011-09-20
  • 1970-01-01
  • 2014-07-15
  • 1970-01-01
  • 2016-10-23
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多