前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >C++操作sqlite3数据库示例代码

C++操作sqlite3数据库示例代码

原创
作者头像
大师级码师
修改2021-09-22 10:45:34
1.1K0
修改2021-09-22 10:45:34
举报
文章被收录于专栏:大师级码师大师级码师

一个简单的使用sqlite3数据库的电话薄,很简单适合初学者看看,而且里面并没有很多容错处理很容易看懂的。

代码语言:javascript
复制
#include<stdio.h>
include"sqlite3.h"
static int callback(void notused,int l,char v,char lname);
int seek(sqlite3 db);
int insert(sqlite3 db);
int replace(sqlite3 db); 
int del(sqlite3 db);
int option(sqlite3 db); 
int quit(sqlite3 db); 
int main()
{

    int num;
    int rc;
    struct sqlite3 db;
    rc=sqlite3_open("sql.db",&db);
    if(rc)
    {
        printf("成功打开数据库");
    }
    else printf("数据库打开失败");
    num=option(db);
    quit(db);
}
int option(sqlite3 db)
{
    int num;
    int rc;
    printf("\t1.查询\n\t2.添加记录\n\t3.更新记录\n\t4.删除记录\n\t5.清屏\n\t6.创建表\n\t7.退出\n");
    printf("请输入:");
    scanf("%d",&num);
    switch (num)
    {
        case 1:seek(db);
        break;
        case 2:rc=insert(db);
        break;
        case 3:replace(db);
        break;
        case 4:del(db);
        break;
        case 5:
                {
                    system("cls");
                    option(db);
                }
        case 6:
                {
                    rc=sqlite3_exec(db,"CREATE TABLE telbook(name,telnum)",0,0,NULL);
                    printf("%d\n",rc);
                }
        break;
        case 7:{
                    printf("即将关闭\n");
                    quit(db);
                }
        break;
        default:
                {   printf("请选择\n");
                    option(db);
                } 
        break;
    }
}
int seek(sqlite3 db)
{
    int num;
    int rc;
    char zSQL;
    char sql_name[20],sql_telnum[11];
    printf("\t1.根据名字查找\n\t2.根据电话查找\n\t3.显示所有\n\t4.回上级目录");
    scanf("%d",&num);
    switch (num)
    {
        case 1:
            {
                printf("请输入名字:");
                scanf("%s",sql_name);
                zSQL= sqlite3_mprintf("select  from telbook where name='%q'", sql_name);
                rc=sqlite3_exec(db,zSQL,callback,0,NULL);
                sqlite3_free(zSQL);
            }
        break;
        case 2:
            {
                printf("请输入电话");
                scanf("%s",sql_telnum);
                zSQL= sqlite3_mprintf("select  from telbook where telnum='%q'", sql_telnum);
                rc=sqlite3_exec(db,zSQL,callback,0,NULL);
                sqlite3_free(zSQL);
            }
        break;
        case 3:rc=sqlite3_exec(db,"select  from telbook",callback,0,NULL);
        break;
        case 4:option(db);
        break;
        default :
                {   printf("请选择要执行的操作\n");
                    option(db);
                }
    }
    printf("%d\n",rc);
    option(db);
}
int insert(sqlite3 db)
{
    int rc;
    char sql_name[20],sql_telnum[11];
    printf("输入姓名和电话以空格分隔:");
    scanf("%s %s",sql_name,sql_telnum);
    char zSQL;
    zSQL= sqlite3_mprintf("INSERT INTO telbook VALUES('%q','%q')", sql_name,sql_telnum);
    rc=sqlite3_exec(db,zSQL,0,0,NULL);
    sqlite3_free(zSQL);
    printf("%d\n",rc);
    option(db);
    return 0;
}
int replace(sqlite3 db)
{
    int rc;
    char sql_name[20],sql_telnum[11];
    printf("请输入名字和新电话号码:");
    scanf("%s %s",sql_name,sql_telnum);
    char zSQL;
    zSQL= sqlite3_mprintf("update telbook set telnum='%q' where name='%q'", sql_telnum,sql_name);
    rc=sqlite3_exec(db,zSQL,0,0,NULL);
    sqlite3_free(zSQL);
    printf("%d\n",rc);
    option(db);
    return 0;
}
int del(sqlite3 db)
{
    int rc;
    char sql_name[20],sql_telnum[11];
    printf("请输入要删除的姓名:");
    scanf("%s",sql_name);
    char zSQL;
    zSQL= sqlite3_mprintf("DELETE FROM telbook where name='%q'", sql_name);
    rc=sqlite3_exec(db,zSQL,0,0,NULL);
    sqlite3_free(zSQL);
    printf("%d\n",rc);
    option(db);
    return 0;
}
int quit(sqlite3 db)
{   int rc;
    rc=sqlite3_close(db); 
    if (rc)
    {
        printf("成功关闭数据库\n");
    }
    else printf("关闭失败\n");
    system("pause");
    exit(1);
}
static int callback(void notused,int l,char v,char lname)
{
    int i;
    for (i=0;i<l;i++)
    {
        printf("%s\t",v[i]);
    }
    printf("\n");
    return 0;
}
</pre> 

原创声明:本文系作者授权腾讯云开发者社区发表,未经许可,不得转载。

如有侵权,请联系 cloudcommunity@tencent.com 删除。

原创声明:本文系作者授权腾讯云开发者社区发表,未经许可,不得转载。

如有侵权,请联系 cloudcommunity@tencent.com 删除。

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
相关产品与服务
数据库
云数据库为企业提供了完善的关系型数据库、非关系型数据库、分析型数据库和数据库生态工具。您可以通过产品选择和组合搭建,轻松实现高可靠、高可用性、高性能等数据库需求。云数据库服务也可大幅减少您的运维工作量,更专注于业务发展,让企业一站式享受数据上云及分布式架构的技术红利!
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档