• 10966阅读
  • 4回复

[提问]关于QT sql中文查询和中文输入问题。 [复制链接]

上一主题 下一主题
离线qqbear1987
 

只看楼主 倒序阅读 楼主  发表于: 2008-06-19
关于QT sql中文查询和中文输入问题。
— 本帖被 XChinux 从 Qt基础编程 移动到本区(2013-04-01) —
关键词: 中文SQL
本人在服务端用中文查询SQL中的字段,为什么查不到。改用数字和字母就OK。在服务端向SQL数据库添加中文,sql数据库记录得是“???”为什么?

一下是查询的代码:

QString name=this->lineEdit5->text();
   
    if (this->lineEdit5->text() == "")
    {
  QMessageBox::warning(this,"","null!");
return;
    }
    QString sql = "select id,xh,xm,xb,jg,zy from student where xh='"+name+"'";
    qr.exec(sql);
   
    if (qr.next())
    {
int i = 0;
      do
      {
  table1->setText(i,0,QString::fromUtf8(qr.value(0).toString()));
  table1->setText(i,1,QString::fromUtf8(qr.value(1).toString()));
  table1->setText(i,2,QString::fromUtf8(qr.value(2).toString()));
  table1->setText(i,3,QString::fromUtf8(qr.value(3).toString()));
  table1->setText(i,4,QString::fromUtf8(qr.value(4).toString()));
  table1->setText(i,5,QString::fromUtf8(qr.value(5).toString()));
        i++;
      }while(qr.next());
离线XChinux

只看该作者 1楼 发表于: 2008-06-19
把所谓是fromUtf8去掉看看
二笔 openSUSE Vim N9 BB10 XChinux@163.com 网易博客 腾讯微博
承接C++/Qt、Qt UI界面、PHP及预算报销系统开发业务
离线qqbear1987

只看该作者 2楼 发表于: 2008-06-19
table1->setText(i,0,QString::fromUtf8(qr.value(0).toString()));
这几句没有问题。
问题应该出在这
QString name=this->lineEdit5->text();
QString sql = "select id,xh,xm,xb,jg,zy from student where xh='"+name+"'";两句。
离线walnutht
只看该作者 3楼 发表于: 2008-06-20
QString name=this->lineEdit5->text();
QString sql = "select id,xh,xm,xb,jg,zy from student where xh='"+name+"'";
你的那个从lineedit得到的汉字的编码是程序运行环境下的locale,跟数据库里的编码估计不一致,把它转成Utf8(如果数据库里的编码是utf8) 再送进去查询
离线linbosmile
只看该作者 4楼 发表于: 2008-07-10
编码问题
快速回复
限100 字节
 
上一个 下一个