c - 从c中的sqlite数据库中选择多个项目
问题描述
我正在尝试在 c 中查询 sqlite,之前我打开并成功插入了一些项目到数据库中(返回 SQLITE_OK),当我查询总数据时(“SELECT * FROM TRANS_TABLE ...”)我可以成功检索我插入的数据但是当我尝试按特定项目查询时,我没有收到任何数据,我的代码有什么问题吗?
sql = "SELECT * FROM TRANS_TABLE WHERE F11_STAN = ?";
cmdStat = sqlite3_prepare_v2(db, sql, -1, &res, 0);
if (cmdStat == SQLITE_OK)
{
sqlite3_bind_text( res, 1,( char *)f11, strlen(( char *)f11), 0);
}
else
{
netLogMsg(( uint8_t*)sqlite3_errmsg(db));
return ;
}
int step = sqlite3_step(res);
if (step == SQLITE_ROW)
{
netLogMsg(( uint8_t *)sqlite3_column_text(res, 0));
netLogMsg(( uint8_t *)sqlite3_column_text(res, 1));
}
else if (step == SQLITE_DONE)
{
//this line is executed !
netLogMsg(( uint8_t *)sqlite3_errmsg(db));
}
memcpy( f11, sqlite3_column_text(res, 1), strlen(( const char *)sqlite3_column_text(res, 1)));
sqlite3_finalize(res);
解决方案
尝试将 id 绑定到准备好的语句:
sql = "SELECT * FROM TRANS_TABLE WHERE F11_STAN = ?1";
cmdStat = sqlite3_prepare_v2(db, sql, -1, &res, 0);
sqlite3_bind_int(res, 1, 5);
推荐阅读
- c++ - 将消息中的泛型传递给事件侦听器的正确设计
- c# - 实体框架只包含返回部分数据库数据
- c# - 防止 Simple.OData.Client 获取整个结构
- python - Python-GNUPG 加密文件无法用私钥解密
- python - 我的一个轴的所有值都没有显示(只有其中一些显示在图表上)并且我在 python 中得到了一个错误的图表
- python - Python:获取所有可能的组合,用于将 x 个苹果分配给 y 个受约束的篮子
- javascript - 循环不会搜索整个对象数组?
- python - 类实例化在 python 中给出位置错误
- mongodb - 从字段中查找最大值
- java - 二元运算符 '&' 的错误操作数类型 第一种:int[] 第二种:int