C++ 如何使用Qt插入空值?

C++ 如何使用Qt插入空值?,c++,sql,qt,null,C++,Sql,Qt,Null,提示我,如何使用Trolltech Qt 4.x SQL类将空值插入表中QSqlQuery,或者是来自QtNetwork的其他东西。 与之类似,在.NET中有System.DbNull类,它表示sql NULL 我应该为某个对象的属性使用什么类型,它可以同时保存null值和QString?在C中,我可以使用System.Object来自QSqlQuery::addBindValue文档: 要绑定NULL值,请使用NULL QVariant;例如,使用 QVariant(QVariant::Str

提示我,如何使用Trolltech Qt 4.x SQL类将空值插入表中<我猜是code>QSqlQuery,或者是来自QtNetwork的其他东西。 与之类似,在.NET中有
System.DbNull
类,它表示sql NULL


我应该为某个对象的属性使用什么类型,它可以同时保存null值和
QString
?在C中,我可以使用
System.Object

来自
QSqlQuery::addBindValue
文档:

要绑定NULL值,请使用NULL QVariant;例如,使用 QVariant(QVariant::String)如果您是 绑定字符串


回答第二个问题,
QString
可以为空。

这个问题是针对Qt4的,但我认为值得一提的是,在Qt5中,您只需传递一个空值。

非常感谢您的回答,这正是我想要的!!对于其他数据类型需要它的人,只需使用QVariant(QVariant::Date)等等。(很高兴现在删除了我数据库中的所有“0000-00-00”值:-)你能澄清一下吗?这到底是怎么回事?你能给出一个代码示例吗?如果我输入文本“NULL”,那么它将写入文本字符串NULL。如果我指定NULL(不带引号),那么我会得到错误消息“从'long'到'const QVariant'的转换不明确”。@Dan我认为没有代码就很清楚了,您可以传递
NULL
指针,而不是字符串
“NULL”
。我现在不使用QT,但根据我的记忆,您可以在qt5中传递一个
NULL
,正如我在回答中指定的那样。你有Qt5或者一个先例版本吗?没有代码就不清楚,否则我不会要求澄清。事实上,您对nullptr的建议未能在qt5中编译,错误为“从‘nullptr_t’到‘constqvariant’的转换不明确”。使用文本0将向数据库中写入0,而不是NULL。