关于编号的问题
浏览了好多帖子,还是没想明白我现在的这种情况,本人刚学,不怕大家笑话
我做了一个新闻管理的功能,用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();
}