日韩av黄I国产麻豆传媒I国产91av视频在线观看I日韩一区二区三区在线看I美女国产在线I麻豆视频国产在线观看I成人黄色短片

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 运维知识 > 数据库 >内容正文

数据库

ios Sqlite数据库增删改查基本操作

發布時間:2025/3/17 数据库 28 豆豆
生活随笔 收集整理的這篇文章主要介紹了 ios Sqlite数据库增删改查基本操作 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

2019獨角獸企業重金招聘Python工程師標準>>>

  研究了幾天的數據庫,終于把它給搞出來了。Sqlite是ios上最常用的數據庫之一,大家還是有必要了解一下的。這是仿照網上的一個例子做的,有些部分寫的不好,我稍作了修改,以講解為主,主要讓大家能夠明白如何修改,明白原理,達到舉一反三的目的。

先來看看效果圖

  先來看看數據庫方法類,將各個操作都封裝在一個類里面,達到代碼重用的目的,這是程序員都應該努力去實現的目標,這樣在下一次用到同樣的方法和類的時候,就可以直接使用封裝好的類,可以節約大量的時間。

先來看看.h文件

#import?<Foundation/Foundation.h> #import?<sqlite3.h> #define?kFilename??@"testdb.db" @class?sqlTestList; @interface?sqlService?:?NSObject?{sqlite3?*_database;}@property?(nonatomic)?sqlite3?*_database;-(BOOL)?createTestList:(sqlite3?*)db;//創建數據庫 -(BOOL)?insertTestList:(sqlTestList?*)insertList;//插入數據?????????????????????????????????????-(BOOL)?updateTestList:(sqlTestList?*)updateList;//更新數據 -(NSMutableArray*)getTestList;//獲取全部數據 -?(BOOL)?deleteTestList:(sqlTestList?*)deletList;//刪除數據: -?(NSMutableArray*)searchTestList:(NSString*)searchString;//查詢數據庫,searchID為要查詢數據的ID,返回數據為查詢到的數據 @end @interface?sqlTestList?:?NSObject//重新定義了一個類,專門用于存儲數據 {????int?sqlID;NSString?*sqlText;NSString?*sqlname; }@property?(nonatomic)?int?sqlID; @property?(nonatomic,?retain)?NSString?*sqlText; @property?(nonatomic,?retain)?NSString?*sqlname;@end


再來看看.m文件

// //??sqlService.m //??SQLite3Test // //??Created?by?fengxiao?on?11-11-28. //??Copyright?2011?__MyCompanyName__.?All?rights?reserved. //#import?"sqlService.h"@implementation?sqlService@synthesize?_database;-?(id)init {return?self; }-?(void)dealloc {[super?dealloc]; }//獲取document目錄并返回數據庫目錄 -?(NSString?*)dataFilePath{NSArray?*paths?=?NSSearchPathForDirectoriesInDomains(NSDocumentDirectory,?NSUserDomainMask,?YES);NSString?*documentsDirectory?=?[paths?objectAtIndex:0];NSLog(@"=======%@",documentsDirectory);return?[documentsDirectory?stringByAppendingPathComponent:@"data.db"];//這里很神奇,可以定義成任何類型的文件,也可以不定義成.db文件,任何格式都行,定義成.sb文件都行,達到了很好的數據隱秘性}//創建,打開數據庫 -?(BOOL)openDB?{//獲取數據庫路徑NSString?*path?=?[self?dataFilePath];//文件管理器NSFileManager?*fileManager?=?[NSFileManager?defaultManager];//判斷數據庫是否存在BOOL?find?=?[fileManager?fileExistsAtPath:path];//如果數據庫存在,則用sqlite3_open直接打開(不要擔心,如果數據庫不存在sqlite3_open會自動創建)if?(find)?{NSLog(@"Database?file?have?already?existed.");//打開數據庫,這里的[path?UTF8String]是將NSString轉換為C字符串,因為SQLite3是采用可移植的C(而不是//Objective-C)編寫的,它不知道什么是NSString.if(sqlite3_open([path?UTF8String],?&_database)?!=?SQLITE_OK)?{//如果打開數據庫失敗則關閉數據庫sqlite3_close(self._database);NSLog(@"Error:?open?database?file.");return?NO;}//創建一個新表[self?createTestList:self._database];return?YES;}//如果發現數據庫不存在則利用sqlite3_open創建數據庫(上面已經提到過),與上面相同,路徑要轉換為C字符串if(sqlite3_open([path?UTF8String],?&_database)?==?SQLITE_OK)?{//創建一個新表[self?createTestList:self._database];return?YES;}?else?{//如果創建并打開數據庫失敗則關閉數據庫sqlite3_close(self._database);NSLog(@"Error:?open?database?file.");return?NO;}return?NO; }//創建表 -?(BOOL)?createTestList:(sqlite3*)db?{//這句是大家熟悉的SQL語句char?*sql?=?"create?table?if?not?exists?testTable(ID?INTEGER?PRIMARY?KEY?AUTOINCREMENT,?testID?int,testValue?text,testName?text)";//?testID是列名,int?是數據類型,testValue是列名,text是數據類型,是字符串類型sqlite3_stmt?*statement;//sqlite3_prepare_v2?接口把一條SQL語句解析到statement結構里去.?使用該接口訪問數據庫是當前比較好的的一種方法NSInteger?sqlReturn?=?sqlite3_prepare_v2(_database,?sql,?-1,?&statement,?nil);//第一個參數跟前面一樣,是個sqlite3?*?類型變量,//第二個參數是一個?sql?語句。//第三個參數我寫的是-1,這個參數含義是前面?sql?語句的長度。如果小于0,sqlite會自動計算它的長度(把sql語句當成以\0結尾的字符串)。//第四個參數是sqlite3_stmt?的指針的指針。解析以后的sql語句就放在這個結構里。//第五個參數是錯誤信息提示,一般不用,為nil就可以了。//如果這個函數執行成功(返回值是?SQLITE_OK?且?statement?不為NULL?),那么下面就可以開始插入二進制數據。//如果SQL語句解析出錯的話程序返回if(sqlReturn?!=?SQLITE_OK)?{NSLog(@"Error:?failed?to?prepare?statement:create?test?table");return?NO;}//執行SQL語句int?success?=?sqlite3_step(statement);//釋放sqlite3_stmt?sqlite3_finalize(statement);//執行SQL語句失敗if?(?success?!=?SQLITE_DONE)?{NSLog(@"Error:?failed?to?dehydrate:create?table?test");return?NO;}NSLog(@"Create?table?'testTable'?successed.");return?YES; }//插入數據 -(BOOL)?insertTestList:(sqlTestList?*)insertList?{//先判斷數據庫是否打開if?([self?openDB])?{sqlite3_stmt?*statement;//這個?sql?語句特別之處在于?values?里面有個??號。在sqlite3_prepare函數里,?號表示一個未定的值,它的值等下才插入。static?char?*sql?=?"INSERT?INTO?testTable(testID,?testValue,testName)?VALUES(?,??,??)";int?success2?=?sqlite3_prepare_v2(_database,?sql,?-1,?&statement,?NULL);if?(success2?!=?SQLITE_OK)?{NSLog(@"Error:?failed?to?insert:testTable");sqlite3_close(_database);return?NO;}//這里的數字1,2,3代表上面的第幾個問號,這里將三個值綁定到三個綁定變量sqlite3_bind_int(statement,?1,?insertList.sqlID);sqlite3_bind_text(statement,?2,?[insertList.sqlText?UTF8String],?-1,?SQLITE_TRANSIENT);sqlite3_bind_text(statement,?3,?[insertList.sqlname?UTF8String],?-1,?SQLITE_TRANSIENT);//執行插入語句success2?=?sqlite3_step(statement);//釋放statementsqlite3_finalize(statement);//如果插入失敗if?(success2?==?SQLITE_ERROR)?{NSLog(@"Error:?failed?to?insert?into?the?database?with?message.");//關閉數據庫sqlite3_close(_database);return?NO;}//關閉數據庫sqlite3_close(_database);return?YES;}return?NO; }//獲取數據 -?(NSMutableArray*)getTestList{NSMutableArray?*array?=?[NSMutableArray?arrayWithCapacity:10];//判斷數據庫是否打開if?([self?openDB])?{sqlite3_stmt?*statement?=?nil;//sql語句char?*sql?=?"SELECT?testID,?testValue?,testName?FROM?testTable";//從testTable這個表中獲取?testID,?testValue?,testName,若獲取全部的話可以用*代替testID,?testValue?,testName。if?(sqlite3_prepare_v2(_database,?sql,?-1,?&statement,?NULL)?!=?SQLITE_OK)?{NSLog(@"Error:?failed?to?prepare?statement?with?message:get?testValue.");return?NO;}else?{//查詢結果集中一條一條的遍歷所有的記錄,這里的數字對應的是列值,注意這里的列值,跟上面sqlite3_bind_text綁定的列值不一樣!一定要分開,不然會crash,只有這一處的列號不同,注意!while?(sqlite3_step(statement)?==?SQLITE_ROW)?{sqlTestList*?sqlList?=?[[sqlTestList?alloc]?init]?;sqlList.sqlID????=?sqlite3_column_int(statement,0);char*?strText???=?(char*)sqlite3_column_text(statement,?1);sqlList.sqlText?=?[NSString?stringWithUTF8String:strText];char?*strName?=?(char*)sqlite3_column_text(statement,?2);sqlList.sqlname?=?[NSString?stringWithUTF8String:strName];[array?addObject:sqlList];[sqlList?release];}}sqlite3_finalize(statement);sqlite3_close(_database);}return?[array?retain];//定義了自動釋放的NSArray,這樣不是個好辦法,會造成內存泄露,建議大家定義局部的數組,再賦給屬性變量。 }//更新數據 -(BOOL)?updateTestList:(sqlTestList?*)updateList{if?([self?openDB])?{sqlite3_stmt?*statement;//這相當一個容器,放轉化OK的sql語句//組織SQL語句char?*sql?=?"update?testTable?set?testValue?=???and?testName?=???WHERE?testID?=??";//將SQL語句放入sqlite3_stmt中int?success?=?sqlite3_prepare_v2(_database,?sql,?-1,?&statement,?NULL);if?(success?!=?SQLITE_OK)?{NSLog(@"Error:?failed?to?update:testTable");sqlite3_close(_database);return?NO;}//這里的數字1,2,3代表第幾個問號。這里只有1個問號,這是一個相對比較簡單的數據庫操作,真正的項目中會遠遠比這個復雜//綁定text類型的數據庫數據sqlite3_bind_text(statement,?3,?[updateList.sqlname?UTF8String],?-1,?SQLITE_TRANSIENT);sqlite3_bind_text(statement,?2,?[updateList.sqlText?UTF8String],?-1,?SQLITE_TRANSIENT);sqlite3_bind_int(statement,?1,?updateList.sqlID);//執行SQL語句。這里是更新數據庫success?=?sqlite3_step(statement);//釋放statementsqlite3_finalize(statement);//如果執行失敗if?(success?==?SQLITE_ERROR)?{NSLog(@"Error:?failed?to?update?the?database?with?message.");//關閉數據庫sqlite3_close(_database);return?NO;}//執行成功后依然要關閉數據庫sqlite3_close(_database);return?YES;}return?NO; } //刪除數據 -?(BOOL)?deleteTestList:(sqlTestList?*)deletList{if?([self?openDB])?{sqlite3_stmt?*statement;//組織SQL語句static?char?*sql?=?"delete?from?testTable??where?testID?=???and?testValue?=???and?testName?=??";//將SQL語句放入sqlite3_stmt中int?success?=?sqlite3_prepare_v2(_database,?sql,?-1,?&statement,?NULL);if?(success?!=?SQLITE_OK)?{NSLog(@"Error:?failed?to?delete:testTable");sqlite3_close(_database);return?NO;}//這里的數字1,2,3代表第幾個問號。這里只有1個問號,這是一個相對比較簡單的數據庫操作,真正的項目中會遠遠比這個復雜sqlite3_bind_int(statement,?1,?deletList.sqlID);sqlite3_bind_text(statement,?2,?[deletList.sqlText?UTF8String],?-1,?SQLITE_TRANSIENT);sqlite3_bind_text(statement,?3,?[deletList.sqlname?UTF8String],?-1,?SQLITE_TRANSIENT);//執行SQL語句。這里是更新數據庫success?=?sqlite3_step(statement);//釋放statementsqlite3_finalize(statement);//如果執行失敗if?(success?==?SQLITE_ERROR)?{NSLog(@"Error:?failed?to?delete?the?database?with?message.");//關閉數據庫sqlite3_close(_database);return?NO;}//執行成功后依然要關閉數據庫sqlite3_close(_database);return?YES;}return?NO;} //查詢數據 -?(NSMutableArray*)searchTestList:(NSString*)searchString{NSMutableArray?*array?=?[NSMutableArray?arrayWithCapacity:10];//判斷數據庫是否打開if?([self?openDB])?{sqlite3_stmt?*statement?=?nil;//sql語句NSString?*querySQL?=?[NSString?stringWithFormat:@"SELECT?*?from?testTable?where?testName?like?\"%@\"",searchString];const?char?*sql?=?[querySQL?UTF8String]; //????????char?*sql?=?"SELECT?*?FROM?testTable?WHERE?testName?like??";//這里用like代替=可以執行模糊查找,原來是"SELECT?*?FROM?testTable?WHERE?testName?=??"if?(sqlite3_prepare_v2(_database,?sql,?-1,?&statement,?NULL)?!=?SQLITE_OK)?{NSLog(@"Error:?failed?to?prepare?statement?with?message:search?testValue.");return?NO;}?else?{sqlTestList?*searchList?=?[[sqlTestList?alloc]init]; //????????????sqlite3_bind_int(statement,?1,?searchID);sqlite3_bind_text(statement,?3,?[searchString?UTF8String],?-1,?SQLITE_TRANSIENT);//查詢結果集中一條一條的遍歷所有的記錄,這里的數字對應的是列值。while?(sqlite3_step(statement)?==?SQLITE_ROW)?{sqlTestList*?sqlList?=?[[sqlTestList?alloc]?init]?;sqlList.sqlID???=?sqlite3_column_int(statement,1);char*?strText???=?(char*)sqlite3_column_text(statement,?2);sqlList.sqlText?=?[NSString?stringWithUTF8String:strText];char?*strName?=?(char*)sqlite3_column_text(statement,?3);sqlList.sqlname?=?[NSString?stringWithUTF8String:strName];[array?addObject:sqlList];[sqlList?release];}[searchList?release];????????????????}sqlite3_finalize(statement);sqlite3_close(_database);}return?[array?retain]; }@end@implementation?sqlTestList//剛才.h文件里定義的類在這實現@synthesize?sqlID; @synthesize?sqlText; @synthesize?sqlname; -(id)?init {sqlID?=?0;sqlText?=?@"";sqlname?=?@"";return?self; }; -(void)?dealloc {if?((sqlText?!=?nil)?&&?(sqlname?!=?nil))?{[sqlText?release];[sqlname?release];}[super?dealloc]; }@end

這就是封裝好的類,可以重用哦!

下面是添加數據頁面

這也是一個類,來看.h文件

#import?<UIKit/UIKit.h> #import?"sqlService.h" @interface?operateSqlViewController?:?UIViewController?{UITextField?*idValue;UITextField?*textValue;UITextField?*textName;????int?oprateType;//區分數據插入與更新sqlTestList?*sqlValue; }@property?(nonatomic,?retain)?IBOutlet?UITextField?*idValue; @property?(nonatomic,?retain)?IBOutlet?UITextField?*textValue; @property?(nonatomic,?retain)?IBOutlet?UITextField?*textName; @property?(nonatomic,?retain)?sqlTestList?*sqlValue; @property?(nonatomic)?int?oprateType;@end

再來看看.m文件

#import?"operateSqlViewController.h"@implementation?operateSqlViewController@synthesize?idValue;@synthesize?textValue;@synthesize?oprateType;@synthesize?sqlValue;@synthesize?textName;-?(void)didReceiveMemoryWarning?{????//?Releases?the?view?if?it?doesn't?have?a?superview.????[super?didReceiveMemoryWarning];????//?Release?any?cached?data,?images,?etc.?that?aren't?in?use.}-?(void)viewDidLoad{UIBarButtonItem?*backButton?=?[[UIBarButtonItem?alloc]initWithTitle:@"返回"style:UIBarButtonItemStyleBorderedtarget:selfaction:@selector(dismiss:)];UIBarButtonItem?*saveButton?=?[[UIBarButtonItem?alloc]initWithTitle:@"保存"style:UIBarButtonItemStyleBorderedtarget:selfaction:@selector(saveValue:)];[[self?navigationItem]?setLeftBarButtonItem:backButton];[[self?navigationItem]?setRightBarButtonItem:saveButton];[backButton?release];[saveButton?release];????if?(oprateType?==?0)?{[self.navigationItem?setTitle:@"數據插入"];}????else?if(oprateType?==?1){[self.navigationItem?setTitle:@"數據更新"];idValue.text?=?[NSString?stringWithFormat:@"%d",?sqlValue.sqlID];textValue.text?=?sqlValue.sqlText;textName.text?=?sqlValue.sqlname;} } -?(void)viewDidUnload?{idValue?=?nil;textValue?=?nil;textName?=?nil;sqlValue?=?nil;[super?viewDidUnload];????//?Release?any?retained?subviews?of?the?main?view.????//?e.g.?self.myOutlet?=?nil;}-?(void)dealloc?{[idValue?release];[textValue?release];[sqlValue?release];[textName?release];[super?dealloc]; } -?(void)dismiss:(id)sender{[[self?parentViewController]?dismissModalViewControllerAnimated:YES]; } -?(void)saveValue:(id)sender{????if?(idValue.text.length?==?0)?{UIAlertView?*alert?=?[[UIAlertView?alloc]?initWithTitle:@"提示"?message:@"請輸入ID"?delegate:selfcancelButtonTitle:@"好"?otherButtonTitles:nil];[alert?show];[alert?release];????????return;}????if?(textValue.text.length?==?0)?{UIAlertView?*alert?=?[[UIAlertView?alloc]?initWithTitle:@"提示"?message:@"請輸入電話"?delegate:selfcancelButtonTitle:@"好"?otherButtonTitles:nil];[alert?show];[alert?release];????????return;}????if?(textName.text.length?==?0)?{UIAlertView?*alert?=?[[UIAlertView?alloc]?initWithTitle:@"提示"?message:@"請輸入姓名"?delegate:selfcancelButtonTitle:@"好"?otherButtonTitles:nil];[alert?show];[alert?release];????????return;}????//初始化數據庫sqlService?*sqlSer?=?[[sqlService?alloc]?init];????//數據庫插入if?(oprateType?==?0)?{sqlTestList?*sqlInsert?=?[[sqlTestList?alloc]init];sqlInsert.sqlID?=?[idValue.text?intValue];sqlInsert.sqlText?=?textValue.text;sqlInsert.sqlname?=?textName.text;????????//調用封裝好的數據庫插入函數if?([sqlSer?insertTestList:sqlInsert])?{UIAlertView?*alert?=?[[UIAlertView?alloc]?initWithTitle:@"提示"?message:@"插入數據成功"?delegate:selfcancelButtonTitle:@"好"?otherButtonTitles:nil];[alert?show];[alert?release];}????????else?{UIAlertView?*alert?=?[[UIAlertView?alloc]?initWithTitle:@"提示"?message:@"插入數據失敗"?delegate:selfcancelButtonTitle:@"好"?otherButtonTitles:nil];[alert?show];[alert?release];}[sqlInsert?release];}????//數據庫更新if(oprateType?==?1){sqlTestList?*newValue?=?[[sqlTestList?alloc]init];newValue.sqlID?=?[idValue.text?intValue];newValue.sqlText?=?textValue.text;newValue.sqlname?=?textName.text;????????//調用封裝好的更新數據庫函數if?([sqlSer?updateTestList:newValue])?{UIAlertView?*alert?=?[[UIAlertView?alloc]?initWithTitle:@"提示"?message:@"更新數據成功"?delegate:selfcancelButtonTitle:@"好"?otherButtonTitles:nil];[alert?show];[alert?release];}????????else?{UIAlertView?*alert?=?[[UIAlertView?alloc]?initWithTitle:@"提示"?message:@"更新數據失敗"?delegate:selfcancelButtonTitle:@"好"?otherButtonTitles:nil];[alert?show];[alert?release];}[newValue?release];}}@end

代碼寫的有些啰嗦,不過不難容易看懂,不多解釋了,要在xib文件中添加3個UITextField和ULabel,要記得連線。

在主界面的.h文件

#import?<UIKit/UIKit.h> #import?"sqlService.h" @interface?SQLite3TestViewController?:?UIViewController<UITableViewDelegate,UITableViewDataSource>?{UITableView?*utableView;NSArray?*listData;UISearchBar?*searchBar;//搜索欄}@property?(nonatomic,?retain)?IBOutlet?UITableView?*utableView; @property?(nonatomic,?retain)?IBOutlet?UISearchBar?*searchBar; @property?(nonatomic,?retain)?NSArray?*listData; -?(IBAction)insertValue; -?(IBAction)updateValue; -?(IBAction)getAllValue; -?(IBAction)deleteValue; -?(IBAction)searchValue; @end

.m文件

// //??SQLite3TestViewController.m //??SQLite3Test // //??Created?by?fengxiao?on?11-11-28. //??Copyright?2011?__MyCompanyName__.?All?rights?reserved. //#import?"SQLite3TestViewController.h" #import?"operateSqlViewController.h"@implementation?SQLite3TestViewController @synthesize?utableView; @synthesize?listData; @synthesize?searchBar;-?(void)viewDidLoad{sqlService?*sqlSer?=?[[sqlService?alloc]?init];listData?=?[sqlSer?getTestList];//先初始化那個專門用于存數據的類,才調用類獲取數據的方法 }-?(void)viewDidAppear:(BOOL)animated{//在這里寫是為了等待時間縮短一點,數據如果很多的,在這里寫可以讓數據提前加載sqlService?*sqlSer?=?[[sqlService?alloc]?init];listData?=?[sqlSer?getTestList];[sqlSer?release];[utableView?reloadData]; }-?(void)didReceiveMemoryWarning?{//?Releases?the?view?if?it?doesn't?have?a?superview.[super?didReceiveMemoryWarning];//?Release?any?cached?data,?images,?etc?that?aren't?in?use. }-?(void)viewDidUnload?{utableView?=?nil;listData?=?nil;searchBar?=?nil;[super?viewDidUnload];//?Release?any?retained?subviews?of?the?main?view.//?e.g.?self.myOutlet?=?nil; }-?(void)dealloc?{[utableView?release];[listData?release];[searchBar?release];[super?dealloc]; }-?(IBAction)insertValue{[searchBar?resignFirstResponder];//觸發這個insertValue方法時隱藏鍵盤operateSqlViewController?*operateController?=?[[operateSqlViewController?alloc]?init?];UINavigationController?*theNavController?=?[[UINavigationController?alloc]initWithRootViewController:operateController];//這里如果不初始化一個UINavigationController類的對象來存放operateSqlViewController類的UIViewController,就不會有最上面的導航欄了。operateController.oprateType?=?0;//optrateType為0時為數據插入[operateController?release];theNavController.navigationBar.tintColor?=?[UIColor?blackColor];[self?presentModalViewController:theNavController?animated:YES];[theNavController?release]; }-?(IBAction)updateValue{[searchBar?resignFirstResponder];NSIndexPath?*indexPath?=?[utableView??indexPathForSelectedRow];????if?(indexPath?==?nil)?{UIAlertView?*alert?=?[[UIAlertView?alloc]?initWithTitle:@"提示"?message:@"請選擇要更新的項"?delegate:selfcancelButtonTitle:@"好"?otherButtonTitles:nil];[alert?show];[alert?release];return;}NSUInteger?row?=?[indexPath?row];sqlTestList?*sqlList?=?[[sqlTestList?alloc]init];sqlList?=?[listData?objectAtIndex:(row?-?1)];//在這里面獲取點擊的行,因為table的第一行沒顯示數據,所以這里要減1。operateSqlViewController?*operateController?=?[[operateSqlViewController?alloc]?init?];UINavigationController?*theNavController?=?[[UINavigationController?alloc]initWithRootViewController:operateController];operateController.oprateType?=?1;//optrateType為1時為數據更新operateController.sqlValue?=?sqlList;theNavController.navigationBar.tintColor?=?[UIColor?blackColor];[self?presentModalViewController:theNavController?animated:YES];[sqlList?release];[operateController?release];[theNavController?release]; }-?(IBAction)getAllValue{[searchBar?resignFirstResponder];sqlService?*sqlSer?=?[[sqlService?alloc]?init];listData?=?[sqlSer?getTestList];[utableView?reloadData];[sqlSer?release];} -?(IBAction)deleteValue{[searchBar?resignFirstResponder];NSIndexPath?*indexPath?=?[utableView??indexPathForSelectedRow];if?(indexPath?==?nil)?{UIAlertView?*alert?=?[[UIAlertView?alloc]?initWithTitle:@"提示"?message:@"請選擇要刪除的項"?delegate:selfcancelButtonTitle:@"好"?otherButtonTitles:nil];[alert?show];[alert?release];return;}NSUInteger?row?=?[indexPath?row];sqlTestList?*sqlList?=?[[sqlTestList?alloc]init];sqlList?=?[listData?objectAtIndex:(row?-?1)];sqlService?*sqlSer?=?[[sqlService?alloc]?init];if?([sqlSer?deleteTestList:sqlList])?{UIAlertView?*alert?=?[[UIAlertView?alloc]?initWithTitle:@"提示"?message:@"刪除數據成功"?delegate:selfcancelButtonTitle:@"好"?otherButtonTitles:nil];[alert?show];[alert?release];//刪除成功后重新獲取數據更新列表listData?=?[sqlSer?getTestList];[utableView?reloadData];}else?{UIAlertView?*alert?=?[[UIAlertView?alloc]?initWithTitle:@"提示"?message:@"刪除數據失敗"?delegate:selfcancelButtonTitle:@"好"?otherButtonTitles:nil];[alert?show];[alert?release];return;}[sqlList?release];[sqlSer?release]; } -?(IBAction)searchValue{if?([searchBar.text?isEqualToString:@""])?{UIAlertView?*alert?=?[[UIAlertView?alloc]?initWithTitle:@"提示"?message:@"請輸入要查詢數據的ID"?delegate:selfcancelButtonTitle:@"好"?otherButtonTitles:nil];[alert?show];[alert?release];return;}else?{ //????????int?idNum?=?[searchBar.text?intValue];NSString?*str?=?searchBar.text;sqlService?*sqlSer?=?[[sqlService?alloc]?init];listData?=?[sqlSer?searchTestList:str];if?([listData??count]?==?0)?{UIAlertView?*alert?=?[[UIAlertView?alloc]?initWithTitle:@"提示"?message:@"sorry,未查詢到數據,請查看name是否有誤"?delegate:selfcancelButtonTitle:@"好"?otherButtonTitles:nil];[alert?show];[alert?release];return;}[searchBar?resignFirstResponder];[utableView?reloadData];[sqlSer?release];} }#pragma?mark?- #pragma?mark?Table?View?Data?Source?Methods -?(NSInteger)tableView:(UITableView?*)tableView?numberOfRowsInSection:(NSInteger)section {//?Return?the?number?of?rows?in?the?section.return?[listData?count]?+?1;//從第二行開始,第一行不顯示數據 }-?(UITableViewCell?*)tableView:(UITableView?*)tableView?cellForRowAtIndexPath:(NSIndexPath?*)indexPath {NSString?*CustomIdentifier?=??[NSString?stringWithFormat:@"cell%d",indexPath.row];//cell不重用UITableViewCell?*cell?=?[tableView?dequeueReusableCellWithIdentifier:CustomIdentifier];if?(indexPath.row?==?0)cell.selectionStyle?=?UITableViewCellSelectionStyleNone;if?(?cell?==?nil?)?{cell?=?[[[UITableViewCell?alloc]?initWithStyle:UITableViewCellStyleValue1?reuseIdentifier:CustomIdentifier]?autorelease];cell.backgroundColor?=?[UIColor?clearColor];}if?(indexPath.row?>?0){NSUInteger?row?=?[indexPath?row];sqlTestList?*sqlList?=?[[sqlTestList?alloc]?init]?;if?(listData?!=?nil)sqlList?=?[listData?objectAtIndex:?(row?-?1)];//讀取數據的時候也要減一行,從第二行開始UILabel?*nameLabel?=?[[UILabel?alloc]initWithFrame:CGRectMake(0+40,?10,?70,?30)];UILabel?*IDLabel?=?[[UILabel?alloc]initWithFrame:CGRectMake(90+40,?10,?70,?30)];UILabel?*valueLabel?=?[[UILabel?alloc]initWithFrame:CGRectMake(180+40,?10,?70,?30)];nameLabel.text?=?sqlList.sqlname;IDLabel.text?=?sqlList.sqlText;valueLabel.text?=?[NSString?stringWithFormat:@"%d",sqlList.sqlID];[cell.contentView?addSubview:nameLabel];[cell.contentView?addSubview:IDLabel];[cell.contentView?addSubview:valueLabel];[nameLabel?release];[IDLabel?release];[valueLabel?release];}else?{for?(int?i?=?0;?i?<?3;?i?++)?{UILabel?*label?=?[[UILabel?alloc]initWithFrame:CGRectMake(90?*?i?+?40,?10,?70?,?30)];NSArray?*array?=?[NSArray?arrayWithObjects:@"姓名",@"ID",@"電話",?nil];label.text?=?[array?objectAtIndex:i];label.backgroundColor?=?[UIColor?clearColor];[cell.contentView?addSubview:label];[label?release];}}return?cell; }-?(NSIndexPath*)tableView:(UITableView?*)tableView?willSelectRowAtIndexPath:(NSIndexPath?*)indexPath {[searchBar?resignFirstResponder];if?(indexPath.row?==?0)?{return?nil;//讓第一行不能點擊}elsereturn?indexPath; }@end

好了,這就是全部了,希望大家盡量封裝自己寫的類,現在寫得多,以后會很輕松。

轉載于:https://my.oschina.net/mickelfeng/blog/271445

總結

以上是生活随笔為你收集整理的ios Sqlite数据库增删改查基本操作的全部內容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。

女人高潮一级片 | 国产精品av在线免费观看 | 国产精品综合在线 | 中文字幕影片免费在线观看 | 精品一区二区在线免费观看 | 日本精品久久久一区二区三区 | 久草在线免费资源 | 国产精品久久一卡二卡 | 日韩网站在线免费观看 | 亚洲午夜在线视频 | 99视频+国产日韩欧美 | 极品久久久久久久 | 欧美吞精| 国产一区二区在线免费播放 | japanese黑人亚洲人4k | 国产精品久久久久久高潮 | 久久久久国产一区二区三区 | 91超国产| 在线看片视频 | 97人人模人人爽人人喊中文字 | 成人免费视频免费观看 | 日韩二区三区 | 亚洲国产小视频在线观看 | 婷婷精品国产欧美精品亚洲人人爽 | 免费美女久久99 | 久草在线视频免赞 | 精品国产一区二区三区蜜臀 | 麻豆传媒视频在线播放 | 久久黄色影视 | www.久久久.com | 久久精品视频播放 | 激情五月激情综合网 | 国产精品视频大全 | 午夜私人影院久久久久 | 毛片永久新网址首页 | 国产小视频在线免费观看视频 | 国产精品视频你懂的 | 久久综合之合合综合久久 | japanese黑人亚洲人4k | 久久亚洲热 | 最近中文字幕高清字幕免费mv | 国产黑丝一区二区三区 | 国产亚洲精品久久久久久无几年桃 | 日本中文字幕电影在线免费观看 | 福利精品在线 | 国产精品久久二区 | 五月天六月丁香 | 六月丁香在线观看 | 婷婷狠狠操 | 涩涩网站在线观看 | 天天天天天天天天操 | 午夜少妇一区二区三区 | 久久99国产一区二区三区 | 在线а√天堂中文官网 | 91精品国产网站 | 日韩中字在线 | 久草在线视频首页 | 毛片网站在线看 | 久久亚洲综合国产精品99麻豆的功能介绍 | 91porny九色91啦中文 | 欧美精品久久久久a | 久久久精品久久日韩一区综合 | 欧美日韩超碰 | 97精品久久人人爽人人爽 | 在线观看mv的中文字幕网站 | 欧美日韩国产在线观看 | 又黄又爽又无遮挡的视频 | 国产麻豆剧果冻传媒视频播放量 | 日日爽日日操 | 久久男人影院 | 国产精品久久久久久久久久免费 | 91传媒激情理伦片 | 国产免费人成xvideos视频 | 亚洲成人免费观看 | 日韩免费在线一区 | 色a在线观看 | 91成人观看| 午夜精品视频一区二区三区在线看 | 日韩av片无码一区二区不卡电影 | 国内小视频在线观看 | 国产一级视频在线免费观看 | 西西www4444大胆在线 | 久久久久久久久久久久久久免费看 | 天天插天天射 | 日韩av电影中文字幕 | 激情五月综合 | 欧美a级在线免费观看 | 日韩一区二区三区免费视频 | 亚洲精品美女 | 免费久久久久久 | 成人动漫精品一区二区 | 国产精品黄色av | 国产精品av在线免费观看 | 91精品伦理 | 国产手机视频 | 国产手机在线播放 | 久久99久久精品 | 日韩精品最新在线观看 | 中文字幕4| 日本久久久亚洲精品 | 亚洲爽爽网 | 亚洲视频在线视频 | 久久久精品国产免费观看同学 | 午夜影院先 | 伊人影院99 | 精品免费久久久久 | 成 人 黄 色 视频免费播放 | 久久不射电影院 | 中文字幕在线观看第一区 | 91香蕉久久| 91精品国产91热久久久做人人 | 国产成人精品一区二区三区在线观看 | 久久久2o19精品 | 色吊丝在线永久观看最新版本 | 欧美日韩xxx | 日本中文字幕在线一区 | 国产午夜亚洲精品 | 青青网视频 | 特级xxxxx欧美 | 蜜臀一区二区三区精品免费视频 | 精品国产片 | 欧美一级特黄高清视频 | 最近中文字幕在线播放 | 伊人激情综合 | 久久久久国产精品免费免费搜索 | 午夜精选视频 | 免费在线观看国产黄 | 九九热久久免费视频 | 一区二区三区 中文字幕 | 一区二区三区四区不卡 | 国产福利一区二区三区在线观看 | av不卡免费看 | 黄色免费网站 | 欧美精品xxx| 成人在线播放av | 欧美激情视频一二三区 | 精品视频专区 | 在线国产福利 | 欧美性猛片, | 97超碰在线视 | 国产在线永久 | 五月天久久综合网 | 国产精品毛片一区二区在线 | 久久国产成人午夜av影院潦草 | av动图| 亚洲综合网 | 天堂黄色片| 久久久久精 | 欧美性生活免费看 | 西西444www高清大胆 | 日韩理论电影网 | 狠狠色伊人亚洲综合成人 | 欧美性久久久久久 | 成人久久毛片 | 日韩精品中文字幕一区二区 | 久久av免费观看 | 精品久久久久一区二区国产 | 91少妇精拍在线播放 | 成人a v视频 | 高清中文字幕 | 国产亚洲在线观看 | 日日干干夜夜 | 亚洲午夜久久久影院 | 久久精品网站视频 | 免费网站在线观看人 | 欧美精品资源 | www五月天婷婷 | 亚洲精品福利视频 | 在线久草视频 | 国产日产av | 一级黄色免费网站 | 狠狠躁夜夜a产精品视频 | 四虎www. | 成人国产在线 | av一级免费| 日韩一级片大全 | 国产精品网红直播 | www.精选视频.com | 天天爽天天做 | 久久99热这里只有精品 | 欧美精品一区在线发布 | 久草视频免费在线观看 | 日韩在线视频一区二区三区 | 精品国产视频一区 | 亚洲一区二区三区在线看 | 久久久免费少妇 | 亚洲综合欧美日韩狠狠色 | 国产精品1区2区在线观看 | 人人爽夜夜爽 | 国产精品二区在线观看 | 久久不射网站 | 麻豆va一区二区三区久久浪 | 青青草在久久免费久久免费 | 国产中文字幕精品 | 色狠狠久久av五月综合 | bbb搡bbb爽爽爽| 精品久久中文 | 国产一级视频在线免费观看 | 精品亚洲视频在线观看 | 亚洲 欧美变态 另类 综合 | 久久伦理| 波多野结依在线观看 | 午夜视频在线观看欧美 | 久久久久久久久久毛片 | 91精品国产成 | 国产一区私人高清影院 | 成 人 免费 黄 色 视频 | 91视频免费| 国产色 在线 | 免费在线日韩 | 91福利视频在线 | 草久在线观看视频 | 日韩av一区二区在线播放 | 日韩免费视频 | 久久精品一区二区国产 | 免费高清在线视频一区· | 99久久精品午夜一区二区小说 | 男女精品久久 | 日韩有码在线观看视频 | 亚洲天堂网站视频 | 亚洲国产成人久久 | 精品久久久久久久久久国产 | 欧美一级黄色视屏 | 精品一区免费 | 五月激情电影 | 日日日操 | 亚洲欧美乱综合图片区小说区 | 日韩精品播放 | 97成人精品区在线播放 | 久久99最新地址 | 久久中文字幕在线视频 | 亚洲一区二区精品 | 最近2019中文免费高清视频观看www99 | 日韩在线视频一区二区三区 | 欧美久久久久久久 | 黄色大全免费网站 | 精品中文字幕视频 | 不卡的av在线| 欧美小视频在线观看 | 欧美黄网站 | 丁香婷婷综合五月 | www.xxxx变态.com | 天天干夜夜爽 | 久久高清国产 | 欧美视频在线二区 | 成人性生活大片 | 亚洲免费视频观看 | 一区二区中文字幕在线观看 | 亚洲一级片免费观看 | 中国一区二区视频 | 91传媒在线观看 | av看片在线观看 | 天天·日日日干 | 成人午夜剧场在线观看 | 国产亚洲成av片在线观看 | 在线观看视频黄色 | 天天爽人人爽夜夜爽 | a黄色片| 日本最大色倩网站www | 欧美日韩综合在线 | 久久婷婷一区二区三区 | 久久艹在线 | 国产免费一区二区三区网站免费 | 色五月成人| 看国产黄色片 | 日韩欧美69| 亚洲日本在线一区 | 特黄特色特刺激视频免费播放 | 免费在线一区二区 | 亚洲精品无 | 国产精品久久久久久久久免费 | 首页中文字幕 | 中文日韩在线视频 | 久久久精品99 | 欧美日韩久久不卡 | 亚洲免费永久精品国产 | 国产精品男女 | 成人sm另类专区 | 欧美极品少妇xbxb性爽爽视频 | 色婷婷视频在线观看 | 久久综合狠狠综合久久狠狠色综合 | 国产特级毛片aaaaaaa高清 | 免费久草视频 | 国产女教师精品久久av | 欧美日韩在线观看一区二区三区 | 亚洲一级免费电影 | 欧美人交a欧美精品 | 97成人精品区在线播放 | 97超碰中文字幕 | 国内精品久久久久久久久久久 | 97视频人人澡人人爽 | 国产亚洲永久域名 | 亚洲爽爽网 | 亚洲一区二区三区四区在线视频 | 操高跟美女 | 日韩免费av片 | 二区三区av | 国产一区二区在线观看免费 | 免费网址你懂的 | 欧美一级裸体视频 | 日日弄天天弄美女bbbb | 日本久久电影 | 在线影视 一区 二区 三区 | 久久久久一区 | 欧美淫视频 | 93久久精品日日躁夜夜躁欧美 | 91av资源网 | 日韩在线视频观看 | 亚洲欧洲国产精品 | 99色亚洲| 久草在线在线 | 国产精品va在线播放 | 国产玖玖在线 | 视频1区2区 | 色全色在线资源网 | 欧美色图亚洲图片 | 成人国产精品av | 国产成人在线网站 | 99热在线国产 | 欧美九九九 | 国产精品观看视频 | 91九色精品 | 欧美特一级片 | 国产男男gay做爰 | 麻豆 free xxxx movies hd | 成人福利在线播放 | 色视频成人在线观看免 | 国产一区国产精品 | 中文字幕永久在线 | 91av欧美| 国产福利久久 | 色婷婷综合久久久 | 91成人在线观看喷潮 | 久久久久久久18 | 在线国产专区 | 1024在线看片 | 97超碰色偷偷 | 五月婷婷操| 国产一区自拍视频 | 欧美成天堂网地址 | 伊人伊成久久人综合网小说 | 在线 精品 国产 | 中文字幕国产亚洲 | 日韩电影一区二区三区 | 午夜久久福利视频 | 久久av在线播放 | 中国美女一级看片 | 日韩网站免费观看 | 国产色小视频 | 9999免费视频 | 午夜精品久久久久久中宇69 | 日本精品久久久久影院 | 97av在线| 日韩网站免费观看 | 黄在线 | 久久国产高清视频 | 久久国产精彩视频 | 色综合天天爱 | 成人资源在线观看 | 天天射日 | 国产中文字幕网 | 婷婷色五| 久草新在线 | 热久久国产精品 | www日韩在线观看 | 欧美性久久久久久 | 激情小说 五月 | 日韩成人免费观看 | 国产专区精品 | 99久久精品国产观看 | 午夜 免费| 国产一级不卡毛片 | 99国内精品久久久久久久 | 欧美二区三区91 | 在线中文字幕网站 | 国产精品国内免费一区二区三区 | av大全免费在线观看 | 欧美日韩性 | 九九视频免费 | 久久久久黄色 | 国产福利久久 | 国产精品久久久区三区天天噜 | 午夜视频在线观看欧美 | 夜夜看av | 天天五月天色 | 日韩欧美电影在线 | 日韩高清观看 | 天天操欧美 | 中文字幕一区二区三区精华液 | 欧美大片在线观看一区 | 成人毛片在线观看视频 | www.黄色| 日本黄区免费视频观看 | 亚洲 综合 激情 | 国产午夜精品一区二区三区欧美 | 午夜av在线免费 | 亚洲一二三在线 | 午夜三级福利 | 日韩一级黄色av | 麻豆国产视频下载 | 亚洲成人资源网 | 久草在线这里只有精品 | 久久久久美女 | www.久久婷婷 | 免费在线播放视频 | 天天射天天射天天 | 婷婷丁香自拍 | 少妇bbbb搡bbbb桶| 精品国产精品久久一区免费式 | 99精品视频在线播放免费 | 成人污视频在线观看 | 五月花丁香婷婷 | 久久一二三四 | 嫩草av影院 | 日韩免费视频线观看 | 日韩有码在线观看视频 | 日本中文字幕在线一区 | 91av视频观看 | av综合网址| 久久成人18免费网站 | 天天天天综合 | 成人黄色大片网站 | 特片网久久 | 久久99精品一区二区三区三区 | 欧美天天射| 久草在线最新 | 天天操天天摸天天爽 | 国产精品理论片 | 久久久久黄 | 色婷婷在线视频 | 天天躁天天躁天天躁婷 | 国产精品 中文在线 | 久久精品香蕉 | 91久久丝袜国产露脸动漫 | 四虎国产精品免费观看视频优播 | 91免费视频国产 | 91色亚洲| 青青河边草免费直播 | 国产视频一区在线 | 一区二区三区精品在线 | 精品视频国产一区 | 久久精品5| 亚洲免费av一区二区 | 国产精品美女视频 | 免费色黄| 亚洲成人av一区 | 久久人人添人人爽添人人88v | 成人h在线观看 | 精品91久久久久 | 国产成人福利在线 | 色美女在线 | 精品中文字幕在线播放 | 日本三级中文字幕在线观看 | 天天摸日日摸人人看 | 亚洲精品一区二区三区在线观看 | 瑞典xxxx性hd极品 | 国产精品视频地址 | 成人午夜电影网站 | 欧美小视频在线 | 亚洲国产偷 | 国产高清在线一区 | 蜜臀aⅴ国产精品久久久国产 | 久久成人综合 | 国产黄色免费看 | 亚欧洲精品视频在线观看 | 在线电影 一区 | 久久激情综合网 | 性色va | 日韩午夜大片 | 久草精品在线观看 | 日韩精品视频在线观看网址 | 午夜精品婷婷 | 深爱激情亚洲 | 日韩美视频 | 成人xxxx| 日韩色视频在线观看 | 日本在线中文 | 韩国av一区二区三区在线观看 | 国产精品美女久久久久久免费 | 亚洲黄色三级 | 国产丝袜在线 | 2024av| aaa免费毛片 | 国产精品理论视频 | 国产亚洲欧美在线视频 | 97精品国产97久久久久久春色 | 四虎永久精品在线 | 69精品人人人人 | 国产精品成人av在线 | 亚洲精品在线网站 | 亚洲91av | 久久99精品久久久久久久久久久久 | 99免费| 久久 在线 | 在线午夜av| 天天射天天操天天 | 久久理论电影网 | 国产专区精品视频 | 91看片淫黄大片91 | av中文国产 | 欧美日韩中文视频 | 欧美成人精品在线 | 九九免费在线观看视频 | 99视频黄| 人人爽网站 | 国产又黄又硬又爽 | 激情综合网五月激情 | av中文电影 | 视频在线国产 | 国产精品日韩在线观看 | 91香蕉视频黄色 | 久久精品欧美一 | 国产视频1区2区3区 久久夜视频 | 五月婷婷在线观看视频 | 久久永久免费 | 亚洲视频电影在线 | 亚洲欧洲精品久久 | 婷婷综合伊人 | 国产短视频在线播放 | 美女网站色在线观看 | 国产成人资源 | 一级免费片 | 欧美成人基地 | 欧美日韩不卡一区 | 国产精品九九九九九 | 成人免费观看大片 | 日韩精品最新在线观看 | 尤物九九久久国产精品的分类 | 久久五月婷婷丁香 | 欧美日韩91 | 成人精品福利 | 手机av永久免费 | 麻花天美星空视频 | 国产69精品久久99不卡的观看体验 | 在线免费观看麻豆视频 | 毛片网站免费在线观看 | 日韩高清无线码2023 | 免费精品视频在线观看 | 国产精品美女久久久久久久久 | 日韩精品一二三 | 国产精品粉嫩 | 欧美日韩中文国产 | 久草在线高清视频 | 精品久久久久久国产偷窥 | 四虎在线永久免费观看 | 国产v在线| 在线观av | 五月开心综合 | av免费在线观看网站 | 国产五月婷婷 | 五月天丁香视频 | 香蕉免费 | 免费a一级 | 国产精品爽爽久久久久久蜜臀 | 亚洲精品天天 | 国内外成人免费在线视频 | 欧美一区,二区 | 日日夜夜噜| 91精品视频网站 | 中文字幕国产一区二区 | 又黄又刺激又爽的视频 | 色综合久久久久综合体桃花网 | 亚洲精品午夜aaa久久久 | 欧美一区在线观看视频 | 天天天天综合 | 美女搞黄国产视频网站 | 国产精品午夜8888 | 国产欧美精品在线观看 | 亚洲精区二区三区四区麻豆 | 四虎在线免费视频 | 国产淫a | 免费看三级 | 亚洲精品在线免费播放 | 91亚色在线观看 | 国产成人一区三区 | 国产精品少妇 | 成人h视频| 四虎在线免费 | 日韩毛片一区 | 96亚洲精品久久久蜜桃 | 99热这里有精品 | 伊人狠狠色丁香婷婷综合 | 在线亚洲成人 | 天天艹日日干 | 国产精品1区 | 久久丁香 | 91香蕉国产在线观看软件 | 欧洲激情综合 | 91九色自拍| 97av超碰| 国产黄色免费 | 欧洲精品二区 | 欧美视频网址 | 99在线观看视频 | 99人久久精品视频最新地址 | 久久久久久久久国产 | 亚洲成人第一区 | 国产精品久久久久一区 | 91精品国产91p65 | 涩av在线| 99国产精品视频免费观看一公开 | 丰满少妇在线 | 亚洲高清视频在线 | 色综合久久中文字幕综合网 | 欧美性黑人 | 婷婷丁香激情综合 | 久久夜色精品国产欧美乱极品 | 就操操久久 | 成人在线播放av | 久久成年人 | 开心色激情网 | 在线免费av网站 | av网站免费在线 | 亚州av成人 | 国产精品视频区 | 中文字幕免费 | 精品一区二区三区在线播放 | 国产精品人成电影在线观看 | 日韩精品一区二区三区丰满 | 欧美整片sss | 国产精品99在线播放 | 五月婷婷一区 | 在线99视频 | 免费看黄视频 | 久久夜色精品国产欧美乱 | 亚洲天堂首页 | 国产精品18p | 色综久久 | 三级黄色免费片 | 色综合天天视频在线观看 | 久久试看| 国产精品美女 | 国产精品免费在线播放 | 色噜噜在线观看视频 | 国产午夜精品免费一区二区三区视频 | 久久久免费观看 | 韩国av在线| 久久精精品视频 | 国产字幕在线播放 | 狠狠色丁香九九婷婷综合五月 | 激情丁香婷婷 | 深夜免费网站 | 亚洲国产精品久久久久 | 91精品国自产拍天天拍 | 亚洲免费公开视频 | 91亚洲夫妻 | 97国产在线| 婷婷色婷婷 | 天天天干夜夜夜操 | 91精品一区二区三区蜜臀 | 五月天婷婷在线视频 | 免费av的网站 | 久久久久久蜜av免费网站 | 国产精品大片在线观看 | 国产视频丨精品|在线观看 国产精品久久久久久久久久久久午夜 | 久草视频中文在线 | 狠日日| 成年人网站免费观看 | 欧美精品乱码99久久影院 | 免费在线观看一区二区三区 | 久久久免费国产 | 久久人人添人人爽添人人88v | 日韩r级电影在线观看 | 日韩高清观看 | 成人高清av在线 | av在线免费网站 | 婷婷丁香在线观看 | 一区二区三区四区在线 | 日韩精品一区二区三区不卡 | 欧美日韩三级 | 亚洲一区视频在线播放 | 久久电影网站中文字幕 | 中国一级特黄毛片大片久久 | 欧美日韩免费在线观看视频 | 国产精品一区久久久久 | 国产精品一区二区在线免费观看 | 国产九色视频在线观看 | 久久久精品亚洲 | 黄色日本片 | 午夜天使 | 久久久久久网站 | 国产精品一区二区久久国产 | 精品久久久久久久久久 | 亚洲国产日韩在线 | 国产精品久久人 | 亚洲综合精品视频 | 日日精品| 青青久视频| 超碰在线日韩 | 深夜免费福利 | 久久99久久99免费视频 | 成人在线视频免费看 | 美女视频久久黄 | 美女视频久久 | 91精品在线免费观看视频 | 中文字幕色网站 | 911国产| 亚洲精品视频久久 | 国产亚洲aⅴaaaaaa毛片 | av免费看在线 | 五月婷社区| 国产精品一区免费看8c0m | 麻豆一区在线观看 | 玖玖视频国产 | 亚洲欧美日韩在线一区二区 | 精品国产成人在线影院 | 丝袜少妇在线 | 能在线看的av | 久久夜色精品国产欧美乱 | 国产精品一区在线播放 | 少妇按摩av | 人人爱人人添 | 国产精品手机播放 | 天天射天天干 | 亚洲免费永久精品国产 | 国产一级做a爱片久久毛片a | 麻豆久久精品 | 天天做天天爱天天爽综合网 | 人人舔人人爽 | 国产高清精品在线观看 | 亚洲精品午夜久久久久久久久久久 | 一区二区久久久久 | 中文字幕乱码视频 | 日韩理论在线 | 日本三级大片 | 国产韩国日本高清视频 | 精产嫩模国品一二三区 | 久久国产香蕉视频 | 成人动漫精品一区二区 | 成人免费视频播放 | 久久久久国产精品一区二区 | 开心激情婷婷 | 日日干天天爽 | 日日麻批40分钟视频免费观看 | 一区二区三区四区五区在线 | 色综合久久久久综合体 | 97av视频| 亚洲精品综合一区二区 | 激情久久久 | 日韩成人在线一区二区 | 婷婷久久久久 | 亚洲视频在线播放 | 久久久国产视频 | 精品久久精品久久 | 国产1区在线 | 亚洲欧美激情精品一区二区 | 久久人人爽视频 | 亚洲japanese制服美女 | 亚洲精品一区二区三区新线路 | 色婷婷视频在线观看 | 一级免费黄视频 | 久久久久国产一区二区 | 亚洲欧美国产精品18p | 欧美性大战久久久久 | 特级大胆西西4444www | 国内精品福利视频 | 久久久午夜视频 | 欧美一区二区在线 | 国产精品久久久久久久久久三级 | 免费在线黄色av | 久草在线费播放视频 | 黄色毛片视频 | 成人av电影在线观看 | 中文字幕观看av | 国产精品2018 | 精品国产自 | 99色免费 | 日韩一区正在播放 | 国产精品久久久久久久午夜片 | 精品字幕 | 国产一区二区精品 | 欧美在线aa | 色婷婷综合五月 | 91视频3p| 国产精品麻豆果冻传媒在线播放 | 91麻豆文化传媒在线观看 | 国产亚州av | 高清不卡一区二区在线 | 国产亚洲精品久久 | 国产乱老熟视频网88av | 久久精品9 | 亚洲一区网站 | 成人在线播放网站 | 精品久久久久免费极品大片 | 欧美va天堂va视频va在线 | 久草在线久草在线2 | 综合激情 | 久久国产亚洲视频 | 国产精品久久久久久久久久免费 | 久久黄色网页 | 亚洲综合在线观看视频 | 成年人在线 | 成年人毛片在线观看 | 国产经典av | 欧美日韩在线视频观看 | 久操中文字幕在线观看 | 亚洲精品欧美成人 | 国内精品久久久久久 | 国产精品国产三级国产不产一地 | 青春草免费视频 | 久久久网站| 亚洲综合在线观看视频 | 中文字幕在线看视频国产中文版 | 欧美精品亚洲精品日韩精品 | 91精品视频一区 | 国内精品久久久久久久久久久久 | 狠狠干成人综合网 | 国产伦理久久精品久久久久_ | 免费亚洲一区二区 | 欧美色婷婷 | 四虎www com| 中文字幕影片免费在线观看 | 亚洲精品在线观看免费 | 亚洲精品视频一 | 国产亚洲人 | 国产香蕉视频在线播放 | 人人爽人人爽人人片 | 国产伦精品一区二区三区免费 | 成人免费一级片 | 综合在线观看 | 日韩国产精品久久久久久亚洲 | 午夜成人免费电影 | 精品亚洲视频在线 | 亚洲精品欧美成人 | 最近日本mv字幕免费观看 | 欧美老女人xx | 五月婷香| 在线观看色网 | 国内精品久久久久影院一蜜桃 | 人人狠狠综合久久亚洲 | 久久精品欧美一 | 国产一区视频免费在线观看 | 成人在线视频免费看 | 国产精品久久久久三级 | 日韩色综合 | 亚洲情感电影大片 | 在线午夜电影神马影院 | 国产精品网红直播 | 国产精品一区免费看8c0m | 草久在线观看视频 | 亚洲色图27p | 久久人人爽爽人人爽人人片av | 国产日韩欧美在线一区 | 麻豆高清免费国产一区 | 美女黄久久 | 丁香视频免费观看 | 久久婷婷色综合 | 精品美女久久久久 | 国产高清免费在线观看 | 日韩二级毛片 | 亚洲精品视频在线免费播放 | 午夜视频在线观看一区二区三区 | 成人精品一区二区三区电影免费 | 亚欧日韩av| 黄色aaa毛片 | 一区二区三区国产精品 | 精品一二三四在线 | 欧美一区成人 | 婷婷色网站 | 国产精品一区二区三区在线播放 | 久久精品中文视频 | 三级视频国产 | 97超级碰碰碰碰久久久久 | 色欧美日韩 | av资源在线看 | 色全色在线资源网 | 四虎影视成人永久免费观看视频 | 免费国产在线精品 | 精品国产午夜 | 日日干天天爽 | 中文字幕在线观看网 | 色婷婷啪啪免费在线电影观看 | 日日操操 | 天天干天天操天天射 | 国产精品中文字幕在线观看 | 久久久久黄色 | 狠狠色香婷婷久久亚洲精品 | 一性一交视频 | 久久久在线免费观看 | 日韩高清一 | 色姑娘综合网 | 免费看片黄色 | 欧美日韩在线视频观看 | 99精品视频在线免费观看 | 国产精品美女免费视频 | 91精品久久久久久久久久久久久 | 色婷婷骚婷婷 | 福利电影一区二区 | 久草线 | 日韩高清国产精品 | 丁香六月激情婷婷 | 亚洲黄色成人网 | 国产美女精彩久久 | 日韩亚洲精品电影 | 成人在线超碰 | 亚洲在线视频免费观看 | 久久99精品国产99久久6尤 | 国产黄色高清 | 99c视频高清免费观看 | 久久综合偷偷噜噜噜色 | 69av久久 | 九九久久久 | 黄色网www | 麻豆视频免费在线 | 黄色福利 | 五月天电影免费在线观看一区 | 国产a视频免费观看 | 99精品热视频只有精品10 | 久久亚洲私人国产精品 | 97**国产露脸精品国产 | 区一区二区三在线观看 | 日韩免费一级a毛片在线播放一级 | 五月激情视频 | 久草在线观看 | 成人资源站 | 成人在线视频免费观看 | 国产 欧美 日本 | 中文字幕在线播放第一页 | 久久久久亚洲精品男人的天堂 | 久久精品免费播放 | 日本久久视频 | 精选久久| 成人免费中文字幕 | 久久久久久毛片精品免费不卡 | 天天操天天操天天操天天操天天操天天操 | 婷婷资源站 | 日本女人的性生活视频 | 玖玖精品在线 | 欧洲av不卡 | aaa毛片视频 | 婷婷色av | 99视频免费看 | 51久久成人国产精品麻豆 | 四虎永久国产精品 | 婷婷综合视频 | 国产小视频免费在线观看 | 久久精品伊人 | 黄色一级大片在线免费看国产一 | 一区二区三区四区久久 | 国产精品视频 | 五月婷香 | 国产精品美女免费视频 | 久久国产精品久久精品国产演员表 | 亚洲精品免费在线播放 | 亚洲日本va在线观看 | 国产一区二区中文字幕 | 亚洲少妇xxxx | 久久精品久久99 | 国产精品久久电影网 | 久久国产手机看片 | 福利一区二区 | 午夜免费在线观看 | 久久好看 | 日操干 | 国产精品高清在线观看 | 999久久国产精品免费观看网站 | 91黄色视屏 | 日日夜夜爱| 精品一区二区6 | 91精品国自产拍天天拍 | 美女精品在线观看 | 99欧美精品| 中文字幕久久久精品 | 五月天综合激情网 | 久久精品这里精品 | 久草热久草视频 | www.天天草 | 国产亚洲精品成人 | 婷婷色影院 | 久久天天躁 | 欧美日韩免费看 | 91手机电视 | 91人人澡人人爽 | 91麻豆文化传媒在线观看 | 亚洲国产婷婷 | 久草视频播放 | 四虎国产精品免费 | 91精品入口 | 日韩精品一区二区三区在线播放 | 涩涩爱夜夜爱 | 精品三级av | 成人在线免费av | 精品国产乱码久久久久久浪潮 | 欧美一级在线观看视频 | 欧美日韩免费视频 | 午夜免费福利视频 | 久久精品女人毛片国产 | 日韩欧美视频免费看 | 国产黄色美女 | www成人精品 | 国产精品二区在线 | 国产精品二区在线观看 | 亚洲国产激情 | 丁香婷五月 | 国产一区视频免费在线观看 | av不卡免费在线观看 | 国产精品成人免费精品自在线观看 | 欧美午夜a |