有数据库"computerMaintenance",字段有"computerName",我在设计界面放了一个TextBox,我想电击btnSubmit(提交)按钮后,把TextBox中我所输入的数据插入到computerMaintenance表中.这里我的表的主键computerID设为自动且非空,但是我插入数据的时候它又提示我主键不能为空,有什么办法可以让其自动添加主键??? private void btnSubmit_Click(object sender, System.EventArgs e)
{   
if(Page.IsValid)
{
SqlConnection con=DBOpen.createConnection();
con.Open();
string btnSubmit="Insert Into computerMaintenance(computerName)Values('"+txtComName.Text+"')";
SqlCommand cmd= new SqlCommand(btnSubmit,con);
cmd.ExecuteNonQuery();
this.BindToDataGrid();
con.Close();
}
Response.Write("<script>alert('"+"插入数据成功!"+"');</script>");
}
}

解决方案 »

  1.   

    数据库里computerID是自动编号么?
      

  2.   

    自动的你可以再写个函数得到当前最大id,然后加1给现在的记录插入,不过这个肯定会有隐患的
    或者你用数据库的触发器在before insert的时候来按上面的方法得到一个id插入记录!
      

  3.   

    我记得如果是sqlserver数据库是可以设置自增字段的,如果你是同样的数据库你也可以设置为自增,同时还得设定初始值,这样就可以不用设置触发器等
      

  4.   

    如果数据库里computerID是自动编号就不用自己去写
      

  5.   

    看来主要的问题应该不在代码上,而是你用的数据库的问题,SqlServer只要设成自增字段就可以了。oracle数据库则要定义序列了。