ASP.NET绑定SQL Server数据到GridView时触发CS1061编译错误咨询
问题原因
该CS1061编译错误与SQL查询、数据绑定逻辑无关,触发根源是aspx页面的GridView控件声明中绑定了OnSelectedIndexChanged="GridView1_SelectedIndexChanged"选中项变更事件,但后端对应代码文件中未定义同名的事件处理方法,编译器无法找到匹配的方法入口,因此终止编译抛出错误。
解决方案
根据你是否需要使用行选中交互功能,二选一处理即可:
- 不需要处理选中逻辑:直接删除GridView标签上的
OnSelectedIndexChanged="GridView1_SelectedIndexChanged"属性,修改后的控件声明如下:
<asp:GridView ID="GridView1" runat="server"> </asp:GridView>
- 需要保留选中事件能力:在页面对应的后端代码文件(updateform.aspx.cs)中补全匹配的事件处理方法,不需要写逻辑时方法体可以留空:
protected void GridView1_SelectedIndexChanged(object sender, EventArgs e) { // 后续可在此处编写行选中后的业务逻辑 }
现有绑定代码补充修正
你当前写的数据查询绑定逻辑缺少最后一步绑定调用,会导致查询到的数据无法正常渲染到GridView中,需要在GridView1.DataSource = dt;后补充一行调用:
GridView1.DataBind();
另外建议将数据库连接、操作逻辑包裹在using语句块中,自动释放数据库连接资源,避免资源泄漏,修正后的完整绑定代码参考:
using (SqlConnection con = new SqlConnection(@"Data Source=DESKTOP-62V61RT\SQLEXPRESS; Initial Catalog =ShopOnlineDB; Integrated Security=True;")) { con.Open(); SqlCommand cmd = new SqlCommand("Select * from Master.Items", con); SqlDataAdapter dat = new SqlDataAdapter(cmd); DataTable dt = new DataTable(); dat.Fill(dt); GridView1.DataSource = dt; GridView1.DataBind(); }
内容的提问来源于stack exchange,提问作者Rasca Rafael
相关产品推荐
相关产品推荐

