在 .aspx 中我有
<body>
<form id="form2" runat="server">
<asp:GridView ID="GridView" runat="server" AutoGenerateColumns="True" Width="100%" ViewStateMode="Enabled">
<Columns>
<asp:BoundField ItemStyle-Width="150px" DataField="id" HeaderText="iD" />
<asp:BoundField ItemStyle-Width="150px" DataField="nme" HeaderText="Name" />
</Columns>
</asp:GridView>
</form>
</body>
在 .cs 中我有
private void Grid()
{
string constr = ConfigurationManager.ConnectionStrings["con"].ConnectionString;
using (SqlConnection con = new SqlConnection(constr))
{
using (SqlCommand cmd = new SqlCommand("SELECT id, nme FROM mytable"))
{
using (SqlDataAdapter sda = new SqlDataAdapter())
{
cmd.Connection = con;
sda.SelectCommand = cmd;
using (dt = new DataTable())
{
sda.Fill(dt);
GridView.DataSource = dt; //error occurs here
GridView.DataBind();
}
}
}
}
}
我收到错误 CS0120 非静态字段、方法或属性“BaseDataBoundControl.DataSource”需要对象引用
.cs 似乎无法识别 .aspx 页面中的 GridView。 使用.net 4.6.1
最佳答案
不要将您的 GridView 称为“GridView”。框架不知道你是在谈论你的 GridView 实例还是在谈论类 GridView .讨论起来很困惑,编译器也很困惑。将 ID 更改为与预先存在的类型名称不冲突的其他内容,并适本地更新您的代码。您通常根据它包含的内容来命名它,例如 CustomersGridView
。
标记
<asp:GridView ID="CustomersGridView" runat="server">
代码隐藏
CustomersGridView.DataSource = dt;
CustomersGridView.DataBind();
关于C#.net GridView .数据源,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/40385631/