no match for ‘operator+’ (operand types are ‘std::__cxx11::basic_string<char>’ and ‘int’) string writeByteDataSql = "INSERT INTO " + mTableName + "(id, data) VALUES(" + id + ", ?);";
时间: 2024-03-28 09:42:40 浏览: 131
C++ 模板写的短小字符串类,用于替换字符数组和std::string
5星 · 资源好评率100%
这个错误提示是因为你在进行字符串拼接时,使用了一个 int 类型的变量 id,而不能直接使用加号将其拼接到字符串中。解决这个问题的方法有两种:
1. 将 id 转换成字符串类型,再拼接到字符串中。可以使用 std::to_string() 函数将 int 类型转换成 std::string 类型,例如:
```
string writeByteDataSql = "INSERT INTO " + mTableName + "(id, data) VALUES(" + std::to_string(id) + ", ?);";
```
2. 使用格式化字符串的方式,将变量插入到字符串中。可以使用 sprintf() 函数将变量按照指定的格式插入到字符串中,例如:
```
char buf[256];
sprintf(buf, "INSERT INTO %s(id, data) VALUES(%d, ?);", mTableName.c_str(), id);
string writeByteDataSql = buf;
```
以上两种方法都可以解决你遇到的问题。
阅读全文