我用了你提供的截图里的代码,但是没有重现你的问题。代码正常工作,没有任何报错信息。
<asp:GridView ID="GridView1" runat="server" AutoGenerateColumns="false" DataKeyNames="mid" OnRowEditing="GridView1_RowEditing">
<Columns>
<asp:BoundField DataField="mid" HeaderText="生产许可号" ReadOnly="true" />
<asp:BoundField DataField="mname" HeaderText="Colum 2" ReadOnly="true" />
<asp:BoundField DataField="mplace" HeaderText="Colum 3" ReadOnly="true" />
</Columns>
</asp:GridView>
string constr = ConfigurationManager.ConnectionStrings["constr"].ToString();
SqlConnection con;
protected void Page_Load(object sender, EventArgs e)
{
if (!Page.IsPostBack)
{
binddata();
}
}
public void binddata()
{
DataTable dt = new DataTable();
string query = $"select * from Manuefactor";
con = new SqlConnection(constr);
con.Open();
GridView1.DataSource = GetData(query);
GridView1.DataKeyNames = new string[] { "mid" };
GridView1.DataBind();
}
protected void GridView1_RowEditing(object sender, GridViewEditEventArgs e)
{
GridView1.EditIndex = e.NewEditIndex;
binddata();
}
public DataTable GetData(string query)
{
DataTable dt = new DataTable();
SqlDataAdapter sda = new SqlDataAdapter(query, con);
sda.Fill(dt);
return dt;
}
如果可能,请提供完整的代码以便我们可以重现问题以找出问题原因。