日期:2014-05-18  浏览次数:20808 次

关于编号的问题
浏览了好多帖子,还是没想明白我现在的这种情况,本人刚学,不怕大家笑话

我做了一个新闻管理的功能,用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();

  }

------解决方案--------------------
id是主键 如果不是自动增长的那就得在插入数据库之前做一次判断,判断是否存在该新闻了,不过你可以直接设置为自动增长的。
------解决方案--------------------
你的问题应该不是和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(); 
}