浏览了好多帖子,还是没想明白我现在的这种情况,本人刚学,不怕大家笑话我做了一个新闻管理的功能,用gridview更新,删除news_id,news_name,news_information,因为想在页面上同时做出插入新闻,提交后在gridview上显示出来,然后就在页面设计中做了三个textbox,分别用于输入id,name,infor,但是id我设置的是主键,调试的时候不知道是我写的程序有问题,还是因为id不可以这么做。若是把id做成自动编号的呢,该怎么处理?我是在asp.net上直接往表里录的信息,没有写sql创建的语句。这个是我写的提交button后的向数据库里插入的语句:
 protected void Button1_Click(object sender, EventArgs e)
    {
        string sqlstr = "insert into news values('" + TextBox1.Text + "','" + TextBox2.Text + "','" + TextBox3.Text + "');";
      sqlcon = new SqlConnection(strCon);
      sqlcom = new SqlCommand(sqlstr, sqlcon);
     sqlcon.Open();
     sqlcom.ExecuteNonQuery();
   sqlcon.Close();
   bind();    }

解决方案 »

  1.   

    news_id 是nvarcha(10),name ,infor都是text类型的,我在运行一下,我错误贴上来
      

  2.   

    如果ID是自增长字段,它是不能在插入的时候指定值的,可以把SQL语句改成这样:sqlstr = "insert into news(name, infor) values('" + TextBox2.Text + "','" + TextBox3.Text + "')"另外,希望你的代码只是用来练练手的,真正的系统里不能这样,要不然会成为活靶子的。
      

  3.   

    程序是可以运行的,当我往三个textbox 里录入信息,提交以后,页面就提示出错了。
    我往news_id的textbox里写的010,之前数据库里已存有9条。
    错误信息如下:
    GridView“GridView1”激发了未处理的事件“PageIndexChanging”。 
    说明: 执行当前 Web 请求期间,出现未处理的异常。请检查堆栈跟踪信息,以了解有关该错误以及代码中导致错误的出处的详细信息。 异常详细信息: System.Web.HttpException: GridView“GridView1”激发了未处理的事件“PageIndexChanging”。源错误: 执行当前 Web 请求期间生成了未处理的异常。可以使用下面的异常堆栈跟踪信息确定有关异常原因和发生位置的信息。  堆栈跟踪: 
    [HttpException (0x80004005): GridView“GridView1”激发了未处理的事件“PageIndexChanging”。]
       System.Web.UI.WebControls.GridView.OnPageIndexChanging(GridViewPageEventArgs e) +1498451
       System.Web.UI.WebControls.GridView.HandlePage(Int32 newPage) +83
       System.Web.UI.WebControls.GridView.HandleEvent(EventArgs e, Boolean causesValidation, String validationGroup) +467
       System.Web.UI.WebControls.GridView.RaisePostBackEvent(String eventArgument) +199
       System.Web.UI.WebControls.GridView.System.Web.UI.IPostBackEventHandler.RaisePostBackEvent(String eventArgument) +7
       System.Web.UI.Page.RaisePostBackEvent(IPostBackEventHandler sourceControl, String eventArgument) +11
       System.Web.UI.Page.RaisePostBackEvent(NameValueCollection postData) +177
       System.Web.UI.Page.ProcessRequestMain(Boolean includeStagesBeforeAsyncPoint, Boolean includeStagesAfterAsyncPoint) +1746 
    这个事件里面该写什么呢?
    还有就是想问,因为刚学,我不知道怎么自动编号,后面我还设计了员工管理,如果想要自动编号该怎么做,一定是要在创建数据库是往sql里写语句么?
      

  4.   

    你的问题应该不是和id相关,你想如果和id有关系,为什么1-9条数据可以插入成功呢?
    从你的错误信息中可以发现,你的问题和分页相关,错误信息如下:
    GridView“GridView1”激发了未处理的事件“PageIndexChanging”。  
    他的意思就是你指定GridView可以分页,而且默认每页9行,当第10条数据加入进来后需要分页了,但是你没有写分页的处理程序,所以报错。解决方法:
    1、不分页:设置GridView的属性:AllowPaging="False"
    2、分页:实现下面这个分页事件处理函数
    protected void GridView1_PageIndexChanging(object sender, GridViewPageEventArgs e) {     
        GridView1.PageIndex = e.NewPageIndex;     
        GridView1.datasource="数据源";                   
        GridView1.DataBind(); 
    }