csharp: using OleDb Getting the identity of the most recently added record

来源:互联网 发布:算法设计与分析王红梅 编辑:程序博客网 时间:2024/06/02 19:11
/// <summary>        /// 执行SQL语句,返回影响的记录数        /// </summary>        /// <param name="SQLString">SQL语句</param>        /// <returns>影响的记录数</returns>        public static int ExecuteSql(string SQLString, params OleDbParameter[] cmdParms)        {            using (OleDbConnection connection = new OleDbConnection(connectionString))            {                using (OleDbCommand cmd = new OleDbCommand())                {                    try                    {                        PrepareCommand(cmd, connection, null, SQLString, cmdParms);                        int rows = cmd.ExecuteNonQuery();                        cmd.Parameters.Clear();                        return rows;                    }                    catch (System.Data.OleDb.OleDbException E)                    {                        throw new Exception(E.Message);                    }                }            }        }        /// <summary>        ///  添加返迴ID值        ///  涂聚文 2014-12-29        ///  Geovin Du        /// 參考:  http://www.mikesdotnetting.com/article/54/getting-the-identity-of-the-most-recently-added-record        /// http://stackoverflow.com/questions/186544/identity-after-insert-statement-always-returns-0        /// </summary>        /// <param name="SQLString"></param>        /// <param name="identity"></param>        /// <param name="cmdParms"></param>        /// <returns></returns>        public static int ExecuteSql(string SQLString, out int identity, params OleDbParameter[] cmdParms)        {                       using (OleDbConnection connection = new OleDbConnection(connectionString))            {                using (OleDbCommand cmd = new OleDbCommand())                {                    try                    {                        PrepareCommand(cmd, connection, null, SQLString, cmdParms);                        int rows = cmd.ExecuteNonQuery();                        cmd.CommandText = "Select @@Identity";                        identity = (int)cmd.ExecuteScalar();                        cmd.Parameters.Clear();                        return rows;                    }                    catch (System.Data.OleDb.OleDbException E)                    {                        throw new Exception(E.Message);                    }                }            }        }

0 0