首页 > 代码库 > 使用sqlite保存数据返回主键

使用sqlite保存数据返回主键

  /// <summary>
        /// 返回insert后的主键值
        /// </summary>
        /// <param name="SQLString"></param>
        /// <param name="para"></param>
        /// <returns></returns>
        public static int ExecuteSql(string SQLString, List<SQLiteParameter> para)
        {
            using (SQLiteConnection connection = GetSQLiteConnection())
            {
                using (SQLiteCommand cmd = new SQLiteCommand(SQLString, connection))
                {
                    try
                    {
                        connection.Open();
                        if (para!=null)
                        {
                            foreach (SQLiteParameter p in para)
                            {
                                cmd.Parameters.Add(p);
                            } 
                        }
                        int rows = 0;
                        if (SQLString.IndexOf("insert") != -1)
                            rows = Convert.ToInt32(cmd.ExecuteScalar());
                        else
                            rows = cmd.ExecuteNonQuery();
                        return rows;
                    }
                    catch (SQLiteException e)
                    {
                        connection.Close();
                        throw e;
                    }
                }
            }
        }

注意:要在同一个连接下可以

    string sql = "insert into ims_tbl_HotelInfo(HotelId,HotelName,HotelTelephone,HotelAddress,Remark,KId,Vip,XId,YId,BId,CId,DId,EId,FId,HId) values(‘" + hotelId + "‘,‘" + hotelName + "‘,‘" + hotalTelephone + "‘,‘" + hotalAddress + "‘,‘" + hremark + "‘,‘ ‘,‘ ‘,‘ ‘,‘ ‘,‘ ‘,‘ ‘,‘ ‘,‘ ‘,‘ ‘,‘ ‘)";
                            int result = SQLiteDBHelper.ExecuteSql(sql + ";select last_insert_rowid();", null);//返回主键