带有c/c++的SQLite数据库
SQLite database with c/c++
如何修复此错误
/home/andi/Desktop/latihan/sqlite c++/sqlite insert.cpp:37:76: error: invalid operands of types ‘const char [53]’ and ‘char [50]’ to binary ‘operator+’
这就是代码。我希望我的代码可读,很抱歉我的英语不好
# include <stdio.h>
# include <iostream>
# include <sqlite3.h>
# include <stdlib.h>
using namespace std;
int main(void)
{
sqlite3 *conn;
sqlite3_stmt *res;
int error = 0;
int rec_count = 0;
const char *errMSG;
const char *tail;
char sql_lite[900]=" ";
int x,number;
char name[50];
char username[50];
char password[50];
error = sqlite3_open("data.dat", &conn);
if (error)
{
printf("Can not open database");
}
printf("Enter the number of data to be insertedn");
scanf("%d",&x);
for(number=x;number>0;number--)
{
cout<<"name : ";cin>>name;
cout<<"username : ";cin>>username;
cout<<"password : ";cin>>password;
}
sprintf(sql_lite, "INSERT INTO login (name,username,password) VALUES ('"+ username + "','" + name + "','" + password +"');");
error = sqlite3_exec(conn, sql_lite, 0, 0, 0);
error = sqlite3_prepare_v2(conn, "SELECT * FROM login order by No",1000, &res, &tail);
if (error != SQLITE_OK)
{
printf("We did not get any data!");
exit(0);
}
printf("=======================================n");
while (sqlite3_step(res) == SQLITE_ROW)
{
printf("%d|", sqlite3_column_int(res, 0));
printf("%s|", sqlite3_column_text(res, 1));
printf("%s|", sqlite3_column_text(res, 2));
printf("%s|", sqlite3_column_text(res, 3));
printf("%un", sqlite3_column_int(res, 4));
rec_count++;
}
printf("=======================================n");
printf("We received %d records.nTotal rows=%dn",rec_count,SQLITE_ROW);
sqlite3_finalize(res);
sqlite3_close(conn);
return 0;
}
这里的问题与SQL无关。不能将+
运算符用于char
数组串联。为此,您必须使用sprintf
。参见以下示例
char buffer [50];
char* a="aaaa", b="bbbbbbb";
sprintf (buffer, "%s plus %s , a, b);
但是,如果您使用C++编程,我建议您使用std::string
而不是char
数组。
如何使用字符串
#include <iostream>
#include <string>
int main()
{
std::string name="",username="",password="";
std::cout << "name : "; std::cin >> name;
std::cout << "username : "; std::cin >> username;
std::cout << "password : "; std::cin >> password;
std::string query = "INSERT INTO login (name,username,password) VALUES ('" + username + "','" + name + "','" + password + "');";
std::cout << query << std::endl;
return 0;
}
相关文章:
- 查询SQLite数据库中的日期
- 连接到 URL Sqlite 数据库C++
- 在SQLITE数据库中写入记录需要花费大量时间.如何提高刀片操作效率?
- 如何使用C ++将SQLite数据库中的所有表从一个数据库复制到另一个数据库
- 将数据从 SQLite 数据库保存到变量中
- QT QML:使用.qrc文件将SQLite数据库部署到Android不起作用
- 确定 SQLite 数据库是否已锁定
- 如何在 Windows 上使用 Visual Studio 2017 连接到 C++ 中的 sqlite 数据库?
- 如何在Qt cpp的SQlite数据库中插入变量的值
- 使用 c++ 生成器编译 sqlite 数据库时出错 5.
- 如何在不同的列中插入随机数量的值? 查询.C++.SQlite 数据库
- Qt:如何使用sqlite数据库修改2个表中的数据记录
- QT SQLITE数据库不会打开
- 如何使用现有的 Sqlite 数据库部署 Qt 应用程序
- 如何从Qt使用密码访问Sqlite数据库
- 在C++中创建 Sqlite 数据库
- 在哪里可以在Windows和OS X上存储SQLite数据库
- 使用 qt 从 sqlite 数据库中获取数据
- 如何使用QT在SQLite数据库中插入RadioButton值
- 将特定结果集从Oracle数据库复制到C 中的SQLite数据库的最佳方法