【问题标题】:DataBind() System.Web.HttpException ID not found in datasourceDataBind() System.Web.HttpException ID 在数据源中找不到
【发布时间】:2018-06-13 01:28:08
【问题描述】:

我正在使用 Visual Studio 制作网络表单

我在 .aspx 中有一个网格,我将使用 c# 在后端页面中填充它

这是.aspx中的代码

  <asp:GridView ID="gvusers" runat="server" AutoGenerateColumns="false"> 

            <Columns>
                 <asp:BoundField DataField="ID" HeaderText="ID" />
                <asp:BoundField DataField="First Name" HeaderText="First Name" />
                  <asp:BoundField DataField="Last Name" HeaderText="Last Name" />
                    <asp:BoundField DataField="Phone Number" HeaderText="Phone Number" />




            </Columns>

        </asp:GridView> 

这是应该填充它的函数(aspx.cs):

void GridFill() {
            using (MySqlConnection sqlCon = new MySqlConnection(connectionString))
            {
                sqlCon.Open();
                MySqlDataAdapter sqlda = new MySqlDataAdapter("userviewall", sqlCon);
                sqlda.SelectCommand.CommandType = CommandType.StoredProcedure;
                DataTable dtbl = new DataTable();
                sqlda.Fill(dtbl);
                gvusers.DataSource = dtbl;
                gvusers.DataBind();
            }

我无法检测到此异常的来源,因此我可以修复它。

堆栈跟踪:

[HttpException (0x80004005): لم يتم العثور على حقل أو خاصية بالاسم 'ID' في مصدر البيانات المحدد.]
   System.Web.UI.WebControls.BoundField.TryGetSimplePropertyValue(Object dataItem, Object& data) +416
   System.Web.UI.WebControls.BoundField.GetValue(Control controlContainer) +384
   System.Web.UI.WebControls.BoundField.OnDataBindField(Object sender, EventArgs e) +147
   System.Web.UI.Control.OnDataBinding(EventArgs e) +165
   System.Web.UI.Control.DataBind(Boolean raiseOnDataBinding) +215
   System.Web.UI.Control.DataBind() +36
   System.Web.UI.Control.DataBindChildren() +244
   System.Web.UI.Control.DataBind(Boolean raiseOnDataBinding) +225
   System.Web.UI.Control.DataBind() +36
   System.Web.UI.WebControls.GridView.CreateRow(Int32 rowIndex, Int32 dataSourceIndex, DataControlRowType rowType, DataControlRowState rowState, Boolean dataBind, Object dataItem, DataControlField[] fields, TableRowCollection rows, PagedDataSource pagedDataSource) +243
   System.Web.UI.WebControls.GridView.CreateChildControls(IEnumerable dataSource, Boolean dataBinding) +7051
   System.Web.UI.WebControls.CompositeDataBoundControl.PerformDataBinding(IEnumerable data) +117
   System.Web.UI.WebControls.GridView.PerformDataBinding(IEnumerable data) +65
   System.Web.UI.WebControls.DataBoundControl.OnDataSourceViewSelectCallback(IEnumerable data) +208
   System.Web.UI.DataSourceView.Select(DataSourceSelectArguments arguments, DataSourceViewSelectCallback callback) +131
   System.Web.UI.WebControls.DataBoundControl.PerformSelect() +226
   System.Web.UI.WebControls.BaseDataBoundControl.DataBind() +140
   System.Web.UI.WebControls.GridView.DataBind() +29
   NoufsTask.Index.GridFill() in c:\Users\abdulaziz\Desktop\NoufsTask\NoufsTask\Index.aspx.cs:77
   NoufsTask.Index.Page_Load(Object sender, EventArgs e) in c:\Users\abdulaziz\Desktop\NoufsTask\NoufsTask\Index.aspx.cs:22
   System.Web.Util.CalliEventHandlerDelegateProxy.Callback(Object sender, EventArgs e) +159
   System.Web.UI.Control.OnLoad(EventArgs e) +165
   System.Web.UI.Control.LoadRecursive() +170
   System.Web.UI.Page.ProcessRequestMain(Boolean includeStagesBeforeAsyncPoint, Boolean includeStagesAfterAsyncPoint) +3615

【问题讨论】:

  • userviewall 返回什么?该错误似乎表明结果不包含名为 ID 的列。
  • 了解数据表的内容会很有帮助。你调试过这个吗?
  • 请使用堆栈跟踪发布完整的异常详细信息
  • @David 这是一个选择表中所有内容的查询
  • @Kell like,你想让我告诉你这个数据库有哪些列吗?它是用户 ID、名字、姓氏、电话号码、日期

标签: c# asp.net data-binding webforms


【解决方案1】:

我猜你正确的错误信息是:

在所选数据源中找不到名为“ID”的字段或属性

解决方案:

您没有在选择查询中选择IDuserviewall 它应该是一个 SQL 查询),因此出现了错误消息。只需在您的查询中选择ID(哪些列需要在网格中绑定)。

重要: 不仅是 ID 字段,您还应该将所有字段返回到网格视图中的数据绑定。您的选择查询应该看起来像

select ID, FirsName, LastName,PhoneNumber from YourTableName // or try select * from YourTableName

您还应该在"FirstName"DataFiled 属性中为数据网格绑定文件提供列名。而DataField 属性不接受variablespace。所以你应该提供 datafield 属性是 DataField="FirstName" 而不是 DataField="First Name"

请关注本论坛site

【讨论】:

  • 这解决了我现在没有错误也没有异常的所有问题,非常感谢
猜你喜欢
  • 2015-10-03
  • 2011-10-20
  • 1970-01-01
  • 2019-08-09
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2019-11-11
相关资源
最近更新 更多