代码如下:public partial class Default2 : System.Web.UI.Page
{
    OleDbConnection sqlcon;
    OleDbCommand sqlcom;
    string strCon = System.Web.HttpContext.Current.Server.MapPath("/xhshop/Database/wlhard.mdb");    protected void Page_Load(object sender, EventArgs e)
    {
        if (!IsPostBack)
        {
            bind();
        }
    }
    protected void GridView1_RowEditing(object sender, GridViewEditEventArgs e)
    {
        GridView1.EditIndex = e.NewEditIndex;
        bind();
    }    //删除
    protected void GridView1_RowDeleting(object sender, GridViewDeleteEventArgs e)
    {
        string sqlstr = "delete from zhengding where 编号='" + GridView1.DataKeys[e.RowIndex].Value.ToString() + "'";
        sqlcon = new OleDbConnection(strCon);
        sqlcom = new OleDbCommand(sqlstr, sqlcon);
        sqlcon.Open();
        sqlcom.ExecuteNonQuery();
        sqlcon.Close();
        bind();
    }    //更新
    protected void GridView1_RowUpdating(object sender, GridViewUpdateEventArgs e)
    {
        sqlcon = new OleDbConnection(strCon);        string sqlstr = "update zhengding set 序号='"
        + ((TextBox)(GridView1.Rows[e.RowIndex].Cells[1].Controls[0])).Text.ToString().Trim() + "',书名='"
        + ((TextBox)(GridView1.Rows[e.RowIndex].Cells[2].Controls[0])).Text.ToString().Trim() + "',版别='"
        + ((TextBox)(GridView1.Rows[e.RowIndex].Cells[3].Controls[0])).Text.ToString().Trim() + "' where 编号='"
        + GridView1.DataKeys[e.RowIndex].Value.ToString() + "'";        sqlcom = new OleDbCommand(sqlstr, sqlcon);        sqlcon.Open();
        sqlcom.ExecuteNonQuery();
        sqlcon.Close();
        GridView1.EditIndex = -1;
        bind();
    }    //取消
    protected void GridView1_RowCancelingEdit(object sender, GridViewCancelEditEventArgs e)
    {
        GridView1.EditIndex = -1;
        bind();
    }    //绑定
    public void bind()
    {
        string sqlstr = "select * from zhengding";
        sqlcon = new OleDbConnection(strCon);
        OleDbDataAdapter myda = new OleDbDataAdapter(sqlstr, sqlcon);
        DataSet myds = new DataSet();
        sqlcon.Open();
        myda.Fill(myds, "zhengding");
        GridView1.DataSource = myds;
        GridView1.DataKeyNames = new string[] { "编号" };//主键
        GridView1.DataBind();
        sqlcon.Close();
      
    }   
}、、、、、、、、、、、、、、、、、、、、、、、
帮帮忙啊 !

解决方案 »

  1.   

    你用的Access?而且字段还是中文?本来Access就相对脆弱
     string sqlstr = "delete from zhengding where 编号='" + GridView1.DataKeys[e.RowIndex].Value.ToString() + "'";
    自动编号你传参还加单引号干嘛?
    到处拼接SQL,毫无参数检查..
      

  2.   

    断点调试看这里
    string sqlstr = "update zhengding set 序号='"
      + ((TextBox)(GridView1.Rows[e.RowIndex].Cells[1].Controls[0])).Text.ToString().Trim() + "',书名='"
      + ((TextBox)(GridView1.Rows[e.RowIndex].Cells[2].Controls[0])).Text.ToString().Trim() + "',版别='"
      + ((TextBox)(GridView1.Rows[e.RowIndex].Cells[3].Controls[0])).Text.ToString().Trim() + "' where 编号='"
      + GridView1.DataKeys[e.RowIndex].Value.ToString() + "'";
      

  3.   

    public void bind()
        {
            string sqlstr = "select * from zhengding";
            sqlcon = new OleDbConnection(strCon);
            OleDbDataAdapter myda = new OleDbDataAdapter(sqlstr, sqlcon);
            DataSet myds = new DataSet();
            sqlcon.Open();
            myda.Fill(myds, "zhengding");
            GridView1.DataSource = myds;
            GridView1.DataKeyNames = new string[] { "xuhao" };//主键
            GridView1.DataBind();
            sqlcon.Close();
          
        }只保留这段代码,xuhao的类型是文本,运行还是一样的提示