1、数据库操作.c
#include <stdio.h>
#include <sqlite3.h>
int main()
{
sqlite3 * db;
int ret = sqlite3_open("student.db", &db);
if(ret != SQLITE_OK)
{
printf("打开数据库失败\n");
return -1;
}
char *errmsg;
const char *sql = "create table if not exists student(ID INTEGER, name TEXT, sex TEXT, age INTEGER, primary key(ID))";
ret = sqlite3_exec(db, sql, NULL, NULL, &errmsg);
if(ret != SQLITE_OK)
{
printf("exec 失败:%s\n", errmsg);
return -1;
}
int id = 1;
char name[20] = "Zhang";
char sex[10] = "M";
int age = 18;
char str[100];
sprintf(str, "insert into student values(NULL, '%s', '%s', %d)", name, sex, age);
ret = sqlite3_exec(db, str, NULL, NULL, &errmsg);
if(ret != SQLITE_OK)
{
printf("exec 失败:%s\n", errmsg);
return -1;
}
sqlite3_close(db);
return 0;
}
2、查询操作.c
#include <stdio.h>
#include <sqlite3.h>
int myfunc(void* v, int count, char** value, char** name)
{
int i;
for(i = 0; i < count; i++)
{
printf("%-8s", value[i]);
}
printf("\n");
return 0;
}
int main()
{
sqlite3 * db;
int ret = sqlite3_open("student.db", &db);
if(ret != SQLITE_OK)
{
printf("打开数据库失败\n");
return -1;
}
char *errmsg;
const char *sql = "select * from student";
ret = sqlite3_exec(db, sql, myfunc, NULL, &errmsg);
if(ret != SQLITE_OK)
{
printf("exec 失败:%s\n", errmsg);
return -1;
}
sqlite3_close(db);
return 0;
}
3、查询操作.c
#include <stdio.h>
#include <sqlite3.h>
int main()
{
sqlite3 * db;
int ret = sqlite3_open("student.db", &db);
if(ret != SQLITE_OK)
{
printf("打开数据库失败\n");
return -1;
}
char *errmsg;
const char *sql = "select * from student";
char **value = NULL;
int row;
int column;
ret = sqlite3_get_table(db, sql, &value, &row, &column, &errmsg);
if(ret != SQLITE_OK)
{
printf("查询失败:%s\n", errmsg);
sqlite3_free(errmsg);
return -1;
}
int i;
for(i = 0; i < row*column; i++)
{
if(i % column == 0)
printf("\n");
printf("%-8s", value[i]);
}
printf("\n");
sqlite3_free_table(value);
sqlite3_close(db);
return 0;
}