【发布时间】: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