数据库操作 ——sqlite3

xiaoxiao2021-02-28  66

#include <stdio.h> #include <sqlite3.h> int LoadMyInfo( void * para, int n_column, char ** column_value, char ** column_name ) { //para是你在 sqlite3_exec 里传入的 void * 参数 //通过para参数,你可以传入一些特殊的指针(比如类指针、结构指针),然后在这里面强制转换成对应的类型(这里面是void*类型,必须强制转换成你的类型才可用)。然后操作这些数据 // n_column是这一条记录有多少个字段 (即这条记录有多少列) // char ** column_value 是个关键值,查出来的数据都保存在这里,它实际上是个1维数组(不要以为是2维数组),每一个元素都是一个 char * 值,是一个字段内容(用字符串来表示,以/0结尾) //char ** column_name 跟 column_value是对应的,表示这个字段的字段名称 //这里,我不使用 para 参数。忽略它的存在.   int i; for (i = 0; i < n_column; i++) { printf ("%8s : %-8s ", column_name[i], column_value[i]); } printf ("\n"); return 0; } int main() { sqlite3 * db = NULL;      int result = sqlite3_open("student.db", &db); if (result != SQLITE_OK) {    printf ("1open student.db error!\n"); return -1; } char *errmsg; result = sqlite3_exec(db, "create table test(ID INTEGER, name TEXT, sex TEXT, age INTEGER, primary key(ID))", NULL, NULL, &errmsg); if (result != SQLITE_OK && result != 1) {    printf ("create test table error : %d(%s)!\n", result, errmsg); return -1; } /* int id; char name[20]; char sex[20]; int age; printf ("please insert a record\n"); printf ("please input ID:"); scanf ("%d", &id); printf ("please input name:"); scanf ("%s", name); printf ("please input sex:"); scanf ("%s", sex); printf ("please input age:"); scanf ("%d", &age); char buff[200]; */ /* result = sqlite3_exec(db, "update test set age=90 where name='Zhang'", NULL, NULL, &errmsg); if (result != SQLITE_OK) {    printf ("insert test table error : %d(%s)!\n", result, errmsg); //return -1; } */ sprintf (buff, "insert into test values(%d,'%s', '%s', %d)", id, name, sex, age); result = sqlite3_exec(db, buff, NULL, NULL, &errmsg); if (result != SQLITE_OK) {    printf ("insert test table error : %d(%s)!\n", result, errmsg); return -1; result = sqlite3_exec(db, "select ID,name from test where sex='F'", LoadMyInfo, NULL, &errmsg); if (result != SQLITE_OK) {    printf ("insert select table error : %d(%s)!\n", result, errmsg); return -1; sqlite3_close(db); return 0; }
转载请注明原文地址: https://www.6miu.com/read-67085.html

最新回复(0)