Access获取新插入数据的自增长主键Id

 

sqlserver有output,Oracle有Sequence。Access用下面的方法,注意两次查询用一个connection:

public int InsertEx(User user)
{
    int id = -1;

    using (OleDbConnection conn = new OleDbConnection(AccessHelper.connectionString))
    {
        conn.Open();

        OleDbCommand cmd = new OleDbCommand { Connection = conn, CommandType = CommandType.Text };

        string commandText =
            $"insert into tb_user (username,userpassword,insdate,dr) values (@username, @userpwd, Date(), 0)";
        List<OleDbParameter> paras = new List<OleDbParameter>
                                     {
                                         new OleDbParameter("username", user.UserName),
                                         new OleDbParameter("userpwd", user.UserPassword)
                                     };


        cmd.CommandText = commandText;
        cmd.Parameters.AddRange(paras.ToArray());
        cmd.ExecuteNonQuery();


        cmd.CommandText = "select @@identity as id";
        cmd.Parameters.Clear();
        id = Convert.ToInt32(cmd.ExecuteScalar());
    }

    return id;
}

 

 

 

转 : https://www.cnblogs.com/David-Huang/p/6180179.html

 

posted @ 2021-04-23 10:36  与f  阅读(390)  评论(0编辑  收藏  举报