access数据库插入一条记录时,其中一个字段需要把ID加上,ID为主键,自增,比如insert时id为1,字段为100001,请教各位该怎么做,最好。

解决方案 »

  1.   

    后台代码控制啊你向数据库插入了一条数据,然后取得插入数据库的自增主键ID,然后 10000+你取得的主键ID号,插入到另外一个字段里面int newId = select @@Identity 取得插入数据库的自增主键IDinsert into table_name(加上ID的字段) values(@addid)OledbParameter[] paras=new OledbParameter[]{
    new OledbParameter("@addid",10000+newId)
    }
      

  2.   

    对了,为了保证数据的一致性,放在一个事物里面处理,大概形式
    using (OleDbConnection conn = sqlhelper.Createconn())
                {
                    conn.Open();
                    OleDbTransaction trans = conn.BeginTransaction();
                    OleDbCommand cmd = conn.CreateCommand();
                    cmd.Transaction = trans;
                    try
                    {
                        sql = "insert into n_news(statichtml,n_cid,n_title,n_flag,n_content,n_keywords,n_descryption) values(@strhtm,@ncid,@title,@flag,@content,@key,@desc)";
                        cmd.CommandText = sql;
                        cmd.Parameters.Add("@strhtm", filename);
                        cmd.Parameters.Add("@ncid", str);
                        cmd.Parameters.Add("@title", title.Value);
                        cmd.Parameters.Add("@flag", rad.SelectedValue);
                        cmd.Parameters.Add("@content", fck.Value);
                        cmd.Parameters.Add("@key", txtkey.Text);
                        cmd.Parameters.Add("@desc", txtdecs.Value);
                        cmd.ExecuteNonQuery();                    string newsql = "select @@Identity";
                        cmd.CommandText = newsql;
                        int newid = (int)cmd.ExecuteScalar();                    cmd.Parameters.Clear();                    string[] array = sqlhelper.splitstr(key.Text.Trim(), ",");
                        for (int i = 0; i < array.Length; i++)
                        {
                            string keysql = "insert into k_keywords(n_nid,k_word) values(@nid,@word)";
                            cmd.CommandText = keysql;
                            cmd.Parameters.Add("@nid", newid);
                            cmd.Parameters.Add("@word", array[i].ToString());
                            cmd.ExecuteNonQuery();
                            cmd.Parameters.Clear();
                        }                    trans.Commit();
                    }
                    catch (Exception)
                    {
                        if (trans != null)
                        {
                            trans.Rollback();
                        }
                        ClientScript.RegisterStartupScript(this.GetType(), "message", "<script language='javascript'>alert('新闻发表失败,请联系管理员')</script>");
                    }
                }
      

  3.   

    你用这个字段的值 + id   就对了啊   去掉id的自增